Tha*_*nks 1 iphone cocoa-touch memory-management autorelease
我想知道自动释放池是否包含对它所拥有的对象的强或弱引用.我猜它们很弱.当我将一个对象添加到自动释放池时,它不会立即释放,但会在池耗尽时释放,对吧?所以引用应该是弱的,即当我将对象添加到自动释放池时,引用计数(或保留计数)保持不变?
在垃圾收集的内存管理环境(即使引用时自动释放和清除弱指针)的上下文中,谈论强引用和弱引用也是有意义的.启用GC后,所有保留/释放/自动释放调用基本上都不执行任何操作(尽管NSAutoreleasePool -drain方法会触发垃圾回收).
既然你已经将这个问题标记为与iPhone相关,并且在iPhone上没有垃圾收集,我假设你指的是常规引用计数,强你意味着增加引用对象的保留计数,并且弱你意味着只存储指针值.
该autorelease方法基本上将对象的所有权从调用代码移动到当前自动释放池,您可以想到调用代码调用版本和池调用保留.
因此,引用实际上很强大,但您的代码失去了所有权并释放了责任.release释放/排空自动释放池时将调用对象.
| 归档时间: |
|
| 查看次数: |
944 次 |
| 最近记录: |