iPhone开发 - 发布自动释放的对象

时间:2009-07-31 04:19:18

标签: iphone objective-c uibutton release autorelease

如果我发布自动释放的对象会怎样?它是一个我想发布的自动释放的UIButton,创建UIButton的唯一方法是使用方便的方法buttonWithType:。它会像普通对象一样从内存中释放出来吗?或者我应该让autoreleasepool来处理它?如果可以的话,我不会在第一时间自动释放它。

谢谢!

2 个答案:

答案 0 :(得分:1)

你应该让自动释放池来处理它。将按钮添加到父视图后,该视图将保留该视图,并且自动释放池将由自动释放池处理。

最容易想到的方法是在所有权方面 - 你没有“拥有”你通过便利方法获得的参考,所以除非你保留它,否则你不需要打扰它。 / p>

答案 1 :(得分:0)

您必须只释放您拥有的对象。 + buttonWithType:不返回拥有的对象,因此您不能释放它。

查看Cocoa Object Ownership Rules

为什么要在这里避免使用自动释放的对象?据推测,您正在创建按钮,因为您正在使用按钮并将其插入到视图层次结构中,因此没有任何理由加速排空包含按钮的自动释放池。