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

谢谢!

有帮助吗?

解决方案

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

最简单的思考方式是在所有权方面—你没有“拥有”你通过便利方法获得的参考,所以除非你保留它,否则你不需要打扰它。

其他提示

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

查看 Cocoa对象所有权规则

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top