我已经通过仪器运行了我的程序,它报告了这段代码中的泄漏:
这是为什么 ?
这部分代码没有泄漏。尝试运行分析器,它可能会告诉您泄漏的内容。
正如我之前所说,我在这里看不到泄漏,但是一些代码更改可能有助于消除可能的泄漏,因为您假设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);
}];