NSNumber在For循环中泄漏内存numberWithInt

时间:2011-08-03 16:07:58

标签: iphone ios xcode memory

NSNumber for循环中的内存泄漏 - 在OSX Lion上的Xcode Instruments 4.1版本上开始 - 当使用仪器在设备配置文件上执行时,这是泄漏。任何想法都赞赏。

        int currentActivityScore = [self.activityScore intValue];
        int deltaCriteriaScore = [[segmentItemArray objectAtIndex:3] intValue];
        int newActivityScore = currentActivityScore + deltaCriteriaScore;
        self.activityScore = [NSNumber numberWithInt:newActivityScore];

我也尝试了这个代码,仍然有泄漏!!!

        int currentActivityScore = [self.activityScore intValue];
        int deltaCriteriaScore = [[segmentItemArray objectAtIndex:3] intValue];
        int newActivityScore = currentActivityScore + deltaCriteriaScore;
        NSNumber *newActivityScoreNumber = [[NSNumber alloc] initWithInt:newActivityScore];
        self.activityScore = newActivityScoreNumber;
        [newActivityScoreNumber release];

2 个答案:

答案 0 :(得分:0)

NSNumber *newActivityScoreNumber = [NSNumber numberWithInt:newActivityScore];
self.activityScore = newActivityScoreNumber;

所以NSNumber是自动释放的。你不需要为此烦恼。

答案 1 :(得分:0)

假设activityScore保留或复制其值,那么我认为您的代码没问题。

仪器给出假阳性(或错过真正的泄漏)并非闻所未闻。将其视为指向要仔细检查的代码的指针,而不是泄漏的保证。