0

我有这个代码:

NSNumber *num;
NSAutoreleasePool *apool = [[NSAutoreleasePool alloc] init];

for (int i=0; i<images_count; i++) {
    num = [NSNumber numberWithInt:images_count];
    [self performSelectorInBackground:@selector(loadData:) withObject:num];
}

[apool release];
[num release];

它会产生以下错误:

2011-06-17 03:10:30.768 CHARLIE[2456:6c03] * __NSAutoreleaseNoPool(): __NSArrayI 类的对象 0x703d0f0 自动释放,没有适当的池 - 只是泄漏

我不明白为什么它会泄漏,有​​人可以解释如何解决这个问题吗?

非常感谢,

杰克

4

1 回答 1

7

该代码有几个问题。

  • 缺少自动释放池可能是由于该loadData:方法在没有自动释放池的情况下运行。

  • [num release]胡说八道。

  • 在该循环的每次迭代中生成一个线程几乎可以保证是并行化图像加载的性能最低的方法。

于 2011-06-17T02:18:49.997 回答