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

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

7得票2回答
自动释放对象两次

NSString *str = [[[[NSString alloc]init]autorelease]autorelease]; str = @"hii"; NSLog(@"%@",str); 有人能帮我解释这段代码吗?如果一个对象被自动释放两次会发生什么?当我运行这段代码时...

7得票3回答
运行循环结束 -- 自动释放池恢复

据我了解,自动释放对象会在自动释放池释放时被清除。现在,自动释放池将在运行循环结束时释放。 我的问题是,如果在我的类中我没有创建自定义的自动释放池,并在该类中对一些对象调用了autorelease方法,那么这些对象何时会被回收?“运行循环结束”是否意味着“应用程序结束”?

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

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

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

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

7得票2回答
Objective-C中的自动释放池 - 是否需要释放主自动释放池?

据我理解,当对象收到一个autorelease消息时,如果除了在main.m中的那个池之外没有其他自动释放池,该对象就会被放置在main.m中。假设这是正确的,我有几个问题: 1)所有自动释放的对象是否都保留在该池中直到应用程序终止? 2)如果问题1成立,那么创建一个没有本地自动释放池(因...

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

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

7得票2回答
如果我不创建自动释放对象,那么是否需要使用自动释放池?

我的意思是,如果我确信自己没有创建任何自动释放的对象,那当然不需要。我的真正关注点在于,是否有其他我不理解的底层机制。我有一个后台线程调用一个函数。我是否总是需要创建自动释放池? - (void)someFuncOnABackgroundThread { //don't seem t...

13得票2回答
NSAutoreleasePool和@autoreleasepool块有什么区别?

我想知道NSAutoreleasePool和@autoreleasepool块之间的区别。我已经查阅了很多问题,但没有得到令人满意的答案。到目前为止,我知道在ARC中不能使用NSAutoreleasePool,在启用和禁用ARC情况下都可以使用@autoreleasepool块。那么它们内部有...

10得票3回答
自动释放池和iOS下何时调用release函数

我希望您能帮我澄清一些内容。 假设我有以下代码:- (void) viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; for (int i = 0; i < 5000000; i++) { NSS...