gpt4 book ai didi

ios - NSNotificationCenter addObserver 没有响应

转载 作者:行者123 更新时间:2023-12-01 18:31:44 27 4
gpt4 key购买 nike

在我的应用程序(游戏)中,当按下中心/主页或锁定按钮时,我试图使用 NSNotificationCenter 暂停和恢复游戏。这是我正在使用的代码:

[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(pauseLayer:)
name:UIApplicationWillResignActiveNotification
object:self.view.layer.sublayers];

[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(pauseLayer:)
name:UIApplicationDidEnterBackgroundNotification
object:self.view.layer.sublayers];

[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(resumeLayer:)
name:UIApplicationWillEnterForegroundNotification
object:self.view.layer.sublayers];

我已经尝试将它放在许多不同的地方,如 viewDidLoad、viewDidAppear、initWithNibNameOrNil,但尽管它们都被调用,但方法 pauseLayer 和 resumeLayer 永远不会被调用,即使应用程序委托(delegate)方法确实如此。为什么这段代码不起作用?

最佳答案

更改addObserver调用并删除 self.view.layer.sublayers来自 object参数。将其更改为 nil .

编辑:更多信息

当然。 object参数告诉 NSNotificationCenter您要观察哪个对象的通知。当您指定 self.view.layer.sublayers您正在观察 UIApplicationWillEnterForegroundNotification等人仅由 sublayers 发送大批。当然,sublayers数组不发送此通知。当您指定 object:nil您正在观察来自任何对象的通知。这在这种情况下是合适的。如果你想指定一个对象,它将是 [UIApplication sharedApplication] .

关于ios - NSNotificationCenter addObserver 没有响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8235630/

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