tableView cellForRow自动释放我的对象

时间:2011-08-20 00:10:54

标签: objective-c memory-leaks uitableview

我创建了一个这样的对象:

NSDictionary *listProfils;

...

@property (nonatomic, retain) NSDictionary *listProfils;

...

@synthetize listProfils

稍后在代码中我将对象设置在 viewDidLoad 方法中,然后在方法 tableView:tableViewcellForRowAtIndexPath:

中进行计数

问题是,当程序读取方法 tableView:tableViewcellForRowAtIndexPath:时,我的对象已经被释放,而它不在上一个方法中。

有谁知道这里的问题是什么以及为什么我的对象被释放了?

提前致谢!

1 个答案:

答案 0 :(得分:0)

没有足够的代码来确定错误,但我会猜测。你可能做过像

这样的事情
listProfils = [NSDictionary dictionaryWith... //etc.];

并且因为它返回了一个自动释放的字典,而这个字典没有被ivar保留,字典将会在一段时间后被释放。更好地使用属性引用:

self.listProfils = [NSDictionary dictionaryWith... //etc.];

这将保留您刚创建的字典,autorelease将负责发布本地参考。