【问题标题】:How do I release an UIImageView allocated like this?如何释放这样分配的 UIImageView?
【发布时间】:2011-05-19 20:45:30
【问题描述】:

我已经在我的 tableview 单元格的 setBackground 方法中分配了一个 UIImageView,如下所示:

 [cell setBackgroundView:[[UIImageView alloc]initWithImage:rowBackground]];

当我在 XCode 4 中运行分析时,它会将这一行突出显示为可能的内存泄漏。我如何释放这个 UIImageView,因为我没有从发布调用中获得引用的指针?

【问题讨论】:

    标签: iphone memory-leaks uiimageview release


    【解决方案1】:

    您可以以不同方式分配它(即,将其存储在 ivar 中并释放它),或在其上调用 autorelease,如下所示:

    [cell setBackgroundView:[[[UIImageView alloc]initWithImage:rowBackground] autorelease]];
    

    【讨论】:

    • 我刚刚解决了。我尝试过这样的自动释放,但由于某种原因 Code Sense 不喜欢它。这样做是可行的。
    • cell.backgroundView = [[[UIImageView alloc]initWithImage:rowBackground] autorelease];
    【解决方案2】:

    给它发送autorelease 消息:

    [cell setBackgroundView:[[[UIImageView alloc]initWithImage:rowBackground] autorelease]];
    

    通过自动释放消息,您声明您不想拥有超出您发送消息范围的对象。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-09
      相关资源
      最近更新 更多