2009-07-31 70 views
1

如果我发布自动发布的对象,会发生什么情况?它是我想发布的一个自动发布的UIButton,创建UIButton的唯一方法是使用便利方法buttonWithType :.它会像普通对象一样从内存中释放出来吗?或者我应该让autoreleasepool照顾它吗?如果可以的话,我不会首先让它自动释放。iPhone开发 - 发布自动发布的对象

谢谢!

回答

1

你应该让autorelease池来处理它。一旦将按钮添加到父视图中,该视图将保留该视图,并且autoreleased句柄将由autorelease池处理。

想想最简单的方法就是所有权 - 您并不是“拥有”您通过便捷方法获得的参考资料,所以除非您保留它,否则无需费心发布它。

0

您只能释放您拥有的对象。 + buttonWithType:不返回一个拥有的对象,所以你不能释放它。

审查Cocoa Object Ownership Rules

为什么你想避免此一自动释放对象?想必你是因为你使用的按钮并将其插入到一个视图层次,所以没有真正的理由,以加速其包含该按钮的自动释放池的排水创建按钮。