我有一個對象將一個本地字符串附加到另一個,然後將它交給一個實例變量。這個StringObj被調用的UITableViewController持有。在第一次調用時,fullCmdString具有正確的字符串。但是,在第二次調用時,fullCmdString爲空,或者充滿奇怪的數據(看起來像奇數mem位置中的數據)。我最好的猜測是stringByAppendingString返回的是對inStr的引用,而不是新的NSString對象,所以數據超出了範圍。任何人都可以對此有所瞭解嗎?奇怪的NSString stringByAppendingString行爲
#import "StringObj.h"
@synthesize fullCmdString;
- (void)assemble:(NSString *)inStr {
NSString *add = @"text added";
//doesn't hold onto string
fullCmdString = [NSString stringWithString:[inStr stringByAppendingString:add]];
//doesn't hold onto string either
fullCmdString = [inStr stringByAppendingString:add];
//works great
fullCmdString = @"basic text text added";
}
這對運行循環自動釋放字符串是有意義的。我想我會在本週末討論蘋果內存管理文檔。謝謝! – John 2010-08-27 04:42:13