对象泄露......我该如何解决?

Abr*_*odj 1 iphone memory-leaks

当我做"构建和分析"时,xCode给出了以下警告:

在第70行分配的对象的潜在泄漏

  1. 方法返回一个具有+1保留计数的Objective-C对象(拥有引用)

  2. 循环回到循环的头部

  3. 在此点之后不再引用在第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)

Geo*_*che 5

最简单的方法是autorelease:

NSString *newString = [[[NSString alloc] initWithFormat:@"Data: "] autorelease]; 
Run Code Online (Sandbox Code Playgroud)

或者在上面公布的特定情况下:

NSString *newString = @"Data: "; 
Run Code Online (Sandbox Code Playgroud)