Abr*_*odj 1 iphone memory-leaks
当我做"构建和分析"时,xCode给出了以下警告:
在第70行分配的对象的潜在泄漏
方法返回一个具有+1保留计数的Objective-C对象(拥有引用)
循环回到循环的头部
在此点之后不再引用在第70行上分配的对象,并且保留计数为+1(对象泄漏)
这是代码(第70行是以"NSString*newString"开头的代码):
for(int j = 1; j < [smokeArray count]; j++) {
NSString *newString = [[NSString alloc] initWithFormat:@"Data: "];
int f = [[[smokeArray objectAtIndex:j] num] intValue];
for (int i = 0; i<6; i++) {
int d = [[[[smokeArray objectAtIndex:j] dat] objectAtIndex:i] intValue];
if (i>0) { newString = [newString stringByAppendingFormat:@"-%d",d]; }
else { newString = [newString stringByAppendingFormat:@"%d",d]; }
}
NSLog(@"%d, %@", f, newString);
}
Run Code Online (Sandbox Code Playgroud)
最简单的方法是autorelease:
NSString *newString = [[[NSString alloc] initWithFormat:@"Data: "] autorelease];
Run Code Online (Sandbox Code Playgroud)
或者在上面公布的特定情况下:
NSString *newString = @"Data: ";
Run Code Online (Sandbox Code Playgroud)