Cha*_*ran 1 iphone nsoperationqueue nsautoreleasepool
谁能给我之间的完美差异的说明NSOperationQueue和NSAutoReleasePool
该NSOperationQueue类调节一组的NSOperation对象的执行.添加到队列后,操作将保留在该队列中,直到明确取消或完成其任务为止.队列内的操作(但尚未执行)本身根据优先级和操作间对象依赖性进行组织,并相应地执行.应用程序可以创建多个操作队列并向其中任何一个提交操作.
操作间依赖关系为操作提供绝对执行顺序,即使这些操作位于不同的操作队列中也是如此.在所有相关操作完成执行之前,操作对象不被视为准备执行.对于准备执行的操作,操作队列始终执行相对于其他就绪操作具有最高优先级的操作.
NSAutoreleasePool 在引用计数环境中(与使用垃圾收集的环境相反),NSAutoreleasePool对象包含已收到自动释放消息的对象,并且在排空时,它会向每个对象发送释放消息.因此,发送自动释放而不是释放到对象会延长该对象的生命周期,至少直到池本身耗尽(如果随后保留该对象,则可能更长).对象可以多次放入同一个池中,在这种情况下,每次将对象放入池中时都会收到一条释放消息.
使用通常的alloc和init消息创建一个NSAutoreleasePool对象,并使用drain(或release)来处理它以了解其中的差异,请参阅" 垃圾收集 ".由于您无法保留自动释放池(或自动释放它 - 请参阅保留和自动释放),因此耗尽池最终会释放它.您应该始终在创建它的相同上下文(调用方法或函数或循环体)中排出自动释放池.有关详细信息,请参阅自动释放池.
更多访问以下指南......
希望对你有帮助..
| 归档时间: |
|
| 查看次数: |
938 次 |
| 最近记录: |