是否有一个在finalize之前调用的方法,我可以像通常使用dealloc一样用于清理?
关闭GarbageCollection,在dealloc方法中,我会像设置public,retain,instance vars一样进行清理 为nil(将释放并将指针设置为nil)。
Apple说如果打开GC,你不应该在finalize方法中这样做。
假设我使用保留的NSTimer属性创建一个NSView子类。为了确保定时器无效,我需要在子类被释放之前/之前调用invalidate。关闭GC后,我只是说[self.time invalidate]并在dealloc方法中将其设置为nil。
然而,使用GC,似乎唯一的方法是将IBOulet作为视图子类。然后,在删除视图之前,我需要使计时器无效。
我不想为我的所有自定义视图或控件制作插座...是否有更好或更自动的方法来执行此操作?
答案 0 :(得分:1)
不。如果你有一个自定义控件,你有vars保留一些东西。您需要为该控件创建一个插座并清理您保留的变量。