辅助线程中是否需要@autoreleasepool池?

时间:2015-09-06 08:25:37

标签: ios pool autorelease

我阅读了关于@autoreleasepool功能的Apple文档。它在一个新线程中说,程序员应该使用ARC中的以下代码声明一个新的自动释放池。

@autoreleasepool{
    //etc
}

但是作为我的测试,我没有在我的代码中添加@autoreleasepool块,它仍然运行良好。我的代码如下所示。

[NSThread detachNewThreadSelector:@selector(threadTest) toTarget:self withObject:nil];
- (void)threadTest
{
//    @autoreleasepool {
        for (int i=0; i<1000000; i++) {
            NSNumber *num = [NSNumber numberWithInt:i];
           [NSString stringWithFormat:@"%@",num];
        }
//    }
}

我使用Xcode Leaks仪器来查看它是否有任何内存泄漏,但我没有发现任何内存泄漏。因此结果是“似乎不需要在辅助线程中声明@autoreleasepool块”,我的话是否正确,有人可以澄清这个吗?

0 个答案:

没有答案