【发布时间】:2012-03-25 21:11:14
【问题描述】:
我的第一个应用程序即将结束,我正在尝试检查我的错误和内存管理并清理所有内容。
在 xcode 的分析器中,以下行作为“潜在的内存泄漏”出现
- (NSMutableArray *) convertStringToASCIIMutableArray:(NSString *)stringIn {
NSLog(@"call:convertStringToASCIIMutableArray");
NSMutableArray *arrayOut = [[NSMutableArray alloc] initWithCapacity:stringIn.length];
//NSMutableArray *arrayOut = [NSMutableArray arrayWithCapacity:stringIn.length];
for (int i=0; i<stringIn.length; i++) {
unichar ch = [stringIn characterAtIndex:i];
if (ch > 96 && ch<123) ch = ch - 32; // convert to all capitals
[arrayOut insertObject:[NSNumber numberWithChar:ch] atIndex:i];
}
return arrayOut;
}
但是当我删除 alloc 调用(如在注释行中或使用自动释放)时,应用程序崩溃。有人知道这里发生了什么吗?
【问题讨论】:
-
了解您是否使用 ARC 非常重要。
标签: iphone objective-c ios xcode analyzer