我明白你需要小心autorelease
在 iOS 上。我有一个返回对象的方法alloc
s 这是调用者需要的,所以在这种情况下——据我所知——我需要发送autorelease
返回之前被调用者中的对象。
这很好,但是一旦控制权返回到手机(即在处理了我的按钮单击之后),自动释放池似乎就被释放了。我怀疑事情应该是这样的,但我想知道这种情况的最佳做法是什么。
我已采取发送retain
来自调用者的消息,以便该对象不会被释放,然后显式释放它dealloc
.
这是最好的方法吗?
自动释放池通常在运行循环的每次迭代后释放。粗略地说,每个 Cocoa 和 Cocoa Touch 应用程序的结构如下:
Get the next message out of the queue
Create an autorelease pool
Dispatch the message (this is where your application does its work)
Drain the autorelease pool
您所描述的是预期的行为。如果你想保留一个对象超过这个时间,你需要显式保留它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)