2011-12-15 30 views
1

是否有一个被称为前完成,我可以使用清理像我通常使用的dealloc的方法?清理瓦尔在敲定和dealloc的

随着垃圾回收关闭,在dealloc方法,我做清理如设置公共的,保留,例如瓦尔 为nil(将释放并设置指针无)。

苹果公司说,如果你打开GC,你不应该做的是,在finalize方法。

比方说,我使用保留的NSTimer属性创建NSView子类。为了确保定时器失效,我需要在子类解除分配前调用invalidate。 GC关闭后,我只是说[self.time invalidate],并将其设置为无dealloc方法。

随着GC上但是,似乎要做到这一点是让一个IBOulet到视图子类的唯一途径。然后,在我删除视图之前,我需要使计时器无效。

我宁愿不要不得不作出网点为我所有的自定义视图或控制...有没有更好或更自动化的方式来做到这一点?

回答

1

没有。如果你有一个自定义控件,并且你有一些可以保留某些东西的变量。您需要创建该控件的出口并清理您保留的变量。