gpt4 book ai didi

cocoa - 清理 Finalize 和 dealloc 中的变量

转载 作者:行者123 更新时间:2023-12-03 17:15:20 25 4
gpt4 key购买 nike

是否有在终结之前调用的方法,我可以使用它进行清理,就像我通常使用 dealloc 一样?

关闭 GarbageCollection 后,在 dealloc 方法中,我会进行清理,例如设置 public、retained、instance vars到 nil(这将释放并将指针设置为 nil)。

Apple 表示,如果您打开 GC,则不应在 Finalize 方法中执行此操作。

假设我创建了一个带有保留的 NSTimer 属性的 NSView 子类。为了确保计时器无效,我需要在子类被释放之前/同时调用 invalidate 。关闭 GC 后,我只需说 [self.time invalidate] 并在 dealloc 方法中将其设置为 nil。

然而,在 GC 开启的情况下,似乎唯一的方法就是为 View 子类创建一个 IBOulet。然后,在删除 View 之前,我需要使计时器无效。

我不想为所有自定义 View 或控件创建导出...是否有更好或更自动的方法来做到这一点?

最佳答案

不。如果您有一个自定义控件并且您有保留某些内容的变量。您需要创建该控件的导出并清理您保留的变量。

关于cocoa - 清理 Finalize 和 dealloc 中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8524629/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com