我有一个从数据管理器获取数据的方法。它看起来像这样:
- (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,依此类推。这是内存泄漏吗?如果是这样,为了不让内存泄漏,我需要做什么?感谢。
答案 0 :(得分:0)
没有内存泄漏,因为被声明为retain的MyDataArray有一个实现,当你执行self.MyDataArray = anArray
时,它会在保留新引用之前释放它所持有的任何引用。