Instruments leaks 说这段代码泄露了:
NSString *name = [file substringToIndex:i];
Layer *actualLayer = nil;
for (Layer *lay in layers) {
if ([lay.layerName isEqual:name]) {
actualLayer = lay;
}
}
name 是泄漏的对象。有一些奇怪的事情:它只是有时会泄漏,并非总是如此(这段代码在我的应用程序正常执行期间执行了数百次,但它只泄漏了 3-4 次)。另一个奇怪的事情是,我认为名称对象是一个自动释放对象,并且它永远不会明确地保留或释放,那么它怎么会泄露呢?
看一下堆栈,substringWithRange 是由 substringToIndex 调用的,所以我认为问题出在 substringToIndex 方法中。