iOS appendFomat导致应用崩溃

时间:2011-08-17 14:12:53

标签: ios

下面的代码有什么问题吗?它有时会崩溃我的应用程序。

- (NSString*) getDisplayString
{
    NSMutableString* display = [[NSMutableString alloc] initWithString:@""];

for(NSUInteger i = 0; i < [entries count]; i++)
{
    Entry* e = [entries objectAtIndex:i];
    [display appendFormat:@"%d. %@ %30d\n", i+1, e.title, e.value];

}

    return display;
}

1 个答案:

答案 0 :(得分:0)

找到我的问题的答案。问题是内存管理,我没有增加Entry对象中找到的NSString标题的保留计数。 title是通过文本字段从用户输入获得的值,因此当UIView释放内部完成的字符串时,它不再在内存中,因此它使得错误看起来是随机的。

总而言之,无论何时使用文本字段中的值,都需要增加其保留计数。

NSMutableArray* myArray = [[NSMutableArray alloc] init];
NSString* someStringToStore = uiTextField.text;
[someStringToStore retain];
[myArray addObject: someStringToStore];