【问题标题】:iPhone Development - Release an autoreleased objectiPhone 开发 - 释放一个自动释放的对象
【发布时间】:2009-07-31 04:19:18
【问题描述】:

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

谢谢!!

【问题讨论】:

    标签: iphone objective-c uibutton release autorelease


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      查看Cocoa Object Ownership Rules

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-30
        • 1970-01-01
        • 2011-04-27
        • 2011-11-09
        • 2013-02-15
        相关资源
        最近更新 更多