因此,在某些情况下,我有一些与删除对象有关的泄漏。
前提: - 我有一个 NSMutableArray 树对象(树对象知道如何绘制自己)。- 我有一个参考指针(Tree *selected),它基本上指向我最后接触的任何树。- 请注意,*selected 指针是弱引用。
好的,到目前为止一切顺利。
问题:当我删除一棵树时出现泄漏。从列表中,我确保被删除的树在将其从数组中删除之前在内部释放所有内容(从数组中删除它应该自动调用 release )。
我尝试了什么:我注意到我的 Tree *selected 指针通过 self 属性被分配了触摸树:
self.selected = 树;
...通过这样做,我知道它正在被保留。所以我试图做的是调用:
[self.selected release];
从数组中删除树后,我立即调用了它。...但是此时它崩溃了,基本上说明它已经发布了。
问题:为什么我会收到此错误消息?我从数组中删除了它,但是我的 self.selected 指针仍然有一个保留的计数,因此我不应该释放它吗?
也许我应该在删除过程之后将其设置为零?或者,也许我应该在删除过程之前将其设置为自动释放?