96得票7回答
NSAutoreleasePool自动释放池是如何工作的?

据我理解,任何使用alloc,new或copy创建的对象都需要手动释放。例如:int main(void) { NSString *string; string = [[NSString alloc] init]; /* use the string */ [s...

76得票4回答
在Swift中,@autoreleasepool的等效语句是什么?

在Swift中,我注意到没有@autoreleasepool{}结构,尽管Swift使用ARC。在Swift中管理自动释放池的正确方法是什么,或者由于某些原因已被删除?

73得票1回答
自动释放池是什么?

可能重复: 为什么要使用自动释放池? 所有的Objective-C起始页面在主函数声明下方都会有一个默认的@autoreleasepool{...}语句。但这个语句实际上是做什么的呢?新的Objective-C版本会自动释放对象,而删除这行代码对程序没有影响。这个命令真的必要吗?

31得票5回答
NSAutoreleasePool不可用。

我正在学习《Objective-C编程》第三版,但是在第一个例子中遇到了问题。 我不断收到这个错误: 语义问题:'NSAutoreleasePool'不可用:在自动引用计数模式下不可用 以下是我的代码:// // main.m // prog1 // // Created by ...

30得票1回答
为什么要使用自动释放池?

我知道在主方法中会创建自动释放池,所有接收到autorelease消息的对象都会存储在该池中,在池耗尽时被释放。 但是常常说要避免使用自动释放对象以避免内存泄漏和应用程序崩溃。 那么我们在什么情况下应该使用autoreleasepool呢? 苹果文档建议我们在使用线程时需要使用它们,因此...

25得票1回答
现代iOS 8中,NSOperation使用是否仍需要@autoreleasepool?

我已阅读 并发编程指南。 在该指南中,文本说明GCD调度队列定义了它们自己的@autoreleasepool池,并提到仍然建议在每个调度级别上定义一个池,但是对于NSOperation,则没有任何说明,苹果提供的示例代码也没有显示使用@autoreleasepool结构。唯一涉及NSOper...

19得票3回答
在ARC下,是否仍建议为循环创建@autoreleasepool?

假设我有一个循环,返回一堆自动释放的NSData对象...NSData* bigData = ... while(some condition) { NSData* smallData = [bigData subdataWithRange:...]; //process sm...

19得票2回答
使用ARC,每个线程都没有自己的自动释放池会有致命问题吗?

我看到了这个: 如果你在应用程序中创建了一个次要线程,你需要为其提供自己的自动释放池。自动释放池和其中包含的对象在 iOS 5开发者食谱书 中有更详细的介绍。 我正在使用ARC编译。我已经创建了许多后台线程,似乎一切都挺好。我的所有后台线程都没有长时间运行。那些对象会被主线程的...

17得票1回答
当提前返回或退出时,@autoreleasepool {} 会被释放吗?

考虑下面的例子:- (void)doSomething { @autoreleasepool { if (someCondition) { /* ... allocate some autoreleased objects here ... */ ...

17得票3回答
iOS自动释放池块

我在阅读苹果公司的关于内存管理的文档时,看到了自动释放池块,这让我开始思考。 Any object sent an autorelease message inside the autorelease pool block is released at the end of the bl...