gpt4 book ai didi

iOS6 viewDidUnload 已弃用

转载 作者:行者123 更新时间:2023-12-02 12:39:57 26 4
gpt4 key购买 nike

也许这是一个不好的做法,但从我阅读的文档中,我得到了在某些情况下在 viewDidLoad 方法内初始化对象并在 viewDidUnload 中将其置零的建议。

例如,如果您有添加观察者之类的内容

[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(filterready:)
name:@"filterReady"
object:nil];

现在我没有删除观察者的方法,但是每次显示 View 时都会调用 viewDidLoad ,这会导致多个观察者在一段时间后运行,然后选择器被多次调用。

我可以通过将一些清理程序移入 viewDidDisappear 方法来解决此问题,但现在我有些怀疑我是否做对了。

在我的示例中,我有多个导航 Controller 正在控制它们的子导航,但永远不会为它们调用 dealloc,即使它们没有被引用

最佳答案

您应该使用- (void)didReceiveMemoryWarning- (void)dealloc 方法。

In iOS 6, the viewWillUnload and viewDidUnload methods of UIViewController are now deprecated. If you were using these methods to release data, use the didReceiveMemoryWarning method instead. You can also use this method to release references to the view controller’s view if it is not being used. You would need to test that the view is not in a window before doing this.

因此,您应该首先检查您的 View 是否在窗口中,然后在 didReceiveMemoryWarning 中删除您的观察者

关于iOS6 viewDidUnload 已弃用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12603336/

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