iPhone开发 - 发布自动发布的对象
问题描述:
如果我发布自动发布的对象,会发生什么情况?它是我想发布的一个自动发布的UIButton,创建UIButton的唯一方法是使用便利方法buttonWithType :.它会像普通对象一样从内存中释放出来吗?或者我应该让autoreleasepool照顾它吗?如果可以的话,我不会首先让它自动释放。iPhone开发 - 发布自动发布的对象
谢谢!
答
你应该让autorelease池来处理它。一旦将按钮添加到父视图中,该视图将保留该视图,并且autoreleased句柄将由autorelease池处理。
想想最简单的方法就是所有权 - 您并不是“拥有”您通过便捷方法获得的参考资料,所以除非您保留它,否则无需费心发布它。
答
您只能释放您拥有的对象。 + buttonWithType:不返回一个拥有的对象,所以你不能释放它。
审查Cocoa Object Ownership Rules。
为什么你想避免此一自动释放对象?想必你是因为你使用的按钮并将其插入到一个视图层次,所以没有真正的理由,以加速其包含该按钮的自动释放池的排水创建按钮。