草庐IT

autoreleasepools

全部标签

ios - 现代 iOS 8 NSOperation 使用仍然需要@autoreleasepool 吗?

我已通读ConcurrencyProgrammingGuide在指南中,文本指出GCD调度队列定义了它们自己的@autoreleasepool池,并提到仍然建议在每个调度级别定义一个池,但对于NSOperation什么也没说,Apple提供的示例代码也没有显示@autoreleasepool结构的用法。在NSOperation的上下文中,@autoreleasepool唯一被模糊提及的地方是在RevisionHistory中,2012-07-17-Removedobsoleteinformationaboutautoreleasepoolusagewithoperations.查看在线

memory-management - 在 Swift 程序中有必要使用 autoreleasepool 吗?

在thisWWDC14presentation的第17页上,它说WorkingwithObjective-C?Stillhavetomanageautoreleasepoolsautoreleasepool{/*code*/}这是什么意思?这是否意味着如果我的代码库没有任何Objective-C文件,则不需要autoreleasepool{}?在ananswerofarelatedquestion,有一个autoreleasepool有用的例子:-(void)useALoadOfNumbers{for(intj=0;j如果将上面的代码翻译成Swift并删除autoreleasepool

objective-c - 为什么 ARC 仍然需要 @autoreleasepool?

在大多数情况下,使用ARC(自动引用计数),我们根本不需要考虑使用Objective-C对象的内存管理。不再允许创建NSAutoreleasePool,但是有一个新的语法:@autoreleasepool{…}我的问题是,当我不应该手动释放/自动释放时,为什么我还需要这个?编辑:简明扼要地总结一下我从所有回答和评论中得到的:新语法:@autoreleasepool{…}是的新语法NSAutoreleasePool*pool=[[NSAutoreleasePoolalloc]init];…[pooldrain];更重要的是:ARC使用autorelease以及release。它需要一个自

objective-c - 为什么 ARC 仍然需要 @autoreleasepool?

在大多数情况下,使用ARC(自动引用计数),我们根本不需要考虑使用Objective-C对象的内存管理。不再允许创建NSAutoreleasePool,但是有一个新的语法:@autoreleasepool{…}我的问题是,当我不应该手动释放/自动释放时,为什么我还需要这个?编辑:简明扼要地总结一下我从所有回答和评论中得到的:新语法:@autoreleasepool{…}是的新语法NSAutoreleasePool*pool=[[NSAutoreleasePoolalloc]init];…[pooldrain];更重要的是:ARC使用autorelease以及release。它需要一个自

ARC下AutoReleasePool的误区

写这边文章的原因是看到网络上对于AutoReleasePool讨论,发现大家对AutoReleasePool存在误区。AutoReleasePool里面的对象何时释放?这个问题是常见的iOS面试题,错误的答案:1.等到一次runloop结束,AutoReleasePool被释放时2.超出作用域{}这些答案都不对,标准答案:每次release时retainCount减一,当retainCount为0时候释放对象。release的时机比如runloop周期中AutoReleasePool被释放时,比如超出作用域时关键概念点:1.不是所有OC对象都会加入到AutoReleasePool2.AutoR

ARC下AutoReleasePool的误区

写这边文章的原因是看到网络上对于AutoReleasePool讨论,发现大家对AutoReleasePool存在误区。AutoReleasePool里面的对象何时释放?这个问题是常见的iOS面试题,错误的答案:1.等到一次runloop结束,AutoReleasePool被释放时2.超出作用域{}这些答案都不对,标准答案:每次release时retainCount减一,当retainCount为0时候释放对象。release的时机比如runloop周期中AutoReleasePool被释放时,比如超出作用域时关键概念点:1.不是所有OC对象都会加入到AutoReleasePool2.AutoR