Tha*_*nks 0 memory-management objective-c autorelease
实际上,如果您使用名称中包含"new","create","alloc"或"copy"的方法,则您负责释放返回给您的对象.但是:为什么这些方法会调用-autorelease?这不会导致"过度释放"对象吗?
让我说我从这样的方法得到那个对象,然后我打电话给 - 释放.该对象位于自动释放池中,引用计数为0.接下来,当自动释放池发布时会发生什么?
便捷构造函数在其名称中没有任何单词(例如,[NSMutableArray array]),因此按照惯例,它们返回自动释放的对象.确实有一个表示返回保留对象的单词的方法不会调用自动释放,因此您的问题的前提部分是不正确的.
如果您自己释放从便利构造函数返回的对象(没有明确保留它们),那么它们将被过度释放,并且您的应用程序可能会崩溃.
归档时间: |
|
查看次数: |
371 次 |
最近记录: |