1

如果我释放一个自动释放的对象会发生什么?它是我想释放的自动释放 UIButton,创建 UIButton 的唯一方法是使用方便的方法 buttonWithType:。它会像普通对象一样从内存中释放吗?或者我应该让自动释放池来处理它?如果可以的话,我一开始就不会让它自动发布。

谢谢!!

4

2 回答 2

1

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

考虑它的最简单方法是所有权 - 您不会“拥有”通过便捷方法获得的引用,因此您无需费心发布它,除非您也保留它。

于 2009-07-31T04:50:54.653 回答
0

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

查看Cocoa 对象所有权规则

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

于 2009-07-31T04:53:23.120 回答