gpt4 book ai didi

ios - NSNotificationCenter 在 vi​​ewDidAppear 中的使用 :

转载 作者:行者123 更新时间:2023-11-29 00:56:52 25 4
gpt4 key购买 nike

我遇到了这段代码:

- (void)viewDidAppear:(BOOL)animated {

[super viewDidAppear:animated];

NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];

[nc removeObserver:self name:Hide object:nil];
[nc addObserver:self selector:@selector(MarkHide:) name:Hide object:nil];

}

为什么观察者先删除,然后又添加?

最佳答案

如果你多次添加同一个通知观察者,你也会收到多次通知。

Observers 可能在 VC 的生命周期中使用,或者仅当 View 处于前台或一段时间等时使用。

viewDidAppear 在 View 实际可见时调用。在 VC 的生命周期中,viewDidAppear 可以被多次调用(当位于 VC 之上的模态 VC 被关闭并且 View 再次可见时)。

所以在这种情况下,VC 希望在 View 处于前台时收听通知。由于它被多次调用,为了能够确保只添加一次观察者,您有两种选择。使用 boolean 变量 - isObserverAdded(更好的方法)来检查观察者是否已添加或移除并添加观察者。

关于ios - NSNotificationCenter 在 vi​​ewDidAppear 中的使用 :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37540548/

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