为什么我的for循环泄漏?

时间:2012-06-06 12:18:54

标签: objective-c ipad instruments memory-leaks

我已通过工具运行我的程序,并在此代码中报告泄漏:

enter image description here

为什么?

2 个答案:

答案 0 :(得分:1)

这部分代码没有泄露。尝试运行分析仪,它可能会显示泄漏的内容。

答案 1 :(得分:0)

正如我之前所说的,我在这里看不到泄漏,但是一些代码更改可能有助于消除可能的泄漏,因为您假设substringWithRange:正在产生泄漏。

以下代码使用基于块的枚举。另一个积极的影响:它知道如何处理组成的非ascii字符。

NSMutableArray *characters = [NSMutableArray array];
NSString *answer = @"Hello, Wørld!";
[answer enumerateSubstringsInRange:NSMakeRange(0, [answer length]) 
                           options:NSStringEnumerationByComposedCharacterSequences 
                        usingBlock:^(NSString *substring, 
                                     NSRange substringRange,
                                     NSRange enclosingRange, 
                                     BOOL *stop) 
{
    [characters addObject:substring];
}
 ];


[characters enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
    NSLog(@"%@", obj);
}];