objective-c autorelease

Yaz*_*zmi 1 iphone objective-c

我是obj-c的新手,无法理解自动释放功能.当我应该使用它时,有人可以向我解释一下吗?它与发布有什么不同.我还需要重置自动释放池吗?怎么样?什么时候?

rpe*_*ich 6

通过将对象添加到最顶层,调用在不久的将来某个autorelease时间调度release要发送到对象的消息NSAutoreleasePool.当池收到drain消息时,它会发送release到已添加到其中的所有对象.

autorelease在方法或函数需要放弃对象的所有权的情况下使用,但需要使其dealloc暂时不被暂停,以便其调用者可以对其执行某些操作.这也是在创造"方便"的方法是有用的包装 alloc,initWith...autorelease为实现这一目标分配简单的代码.