【问题标题】:Retain/releasing memory with properties使用属性保留/释放内存
【发布时间】:2011-11-02 21:25:51
【问题描述】:

我有一个从数据管理器获取数据的方法。它看起来像这样:

- (void)GetData {
    NSArray *anArray = [datamanager GetData]; // GetData returns an autoreleased array
    self.MyDataArray = anArray;  
}

MyDataArray 被声明为属性(非原子,保留)

我的问题是,函数 datamanager GetData 在代码中的其他地方发生了变化,在调用 GetData 时为 anArray 返回了不同的值。我对 self.MyDataArray = anArray 这一行感到困惑。因为据我所知,这将第一次保留 anArray,然后再次调用 GetData 方法,然后保留不同的 anArray,依此类推。那么这是内存泄漏吗?如果是这样,我需要做什么才能不发生内存泄漏?谢谢。

【问题讨论】:

    标签: iphone memory-management


    【解决方案1】:

    没有内存泄漏,因为声明为保留的 MyDataArray 有一个实现,当您执行 self.MyDataArray = anArray 时,它会在保留新引用之前释放它持有的任何引用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-06
      • 2012-03-18
      • 1970-01-01
      • 1970-01-01
      • 2011-08-28
      • 1970-01-01
      • 2010-12-02
      相关资源
      最近更新 更多