奇怪的nsnotificationcenter崩溃
-
05-10-2019 - |
题
大家好,我还有一个问题。这次是nsnotificationcenter。现在它崩溃了,但是几天前,当我添加通知时,它正常工作。在我之间添加了一些与此无关的代码之间的时间...
我有大约10x10瓷砖。每个瓷砖创建后立即将自己添加为观察者:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playerJumped) name:@"TestNot" object:nil];
在我的播放器课程中,每次跳跃结束时,我都会发布以下代码的通知:
if (self.postNotifications == YES) {
//Also post the notification for all the Tiles.
[[NSNotificationCenter defaultCenter] postNotificationName:@"TestNot" object:self];
}
如果我在瓷砖中使用nslog(),我可以看到大约3或4个图块会收到通知。之后,应用程序用exc_bad_access崩溃。它说 objc_msgSend() selector name: playerJumped
. 。但是我不明白为什么。我看到它与第一个相比,它与崩溃相比。我的错误是什么?你能帮我么!桑德罗
编辑:是否有问题,因为大约100个对象收到了通知?
解决方案
您的瓷砖对象已被划分,但仍在通知中心注册以接收通知。如果这不是您的期望,请尝试在瓷砖的-Dealloc方法上添加断点。
其他提示
我本人也有同样的问题。将其添加到课堂上解决了问题
- (void) dealloc
{
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
不隶属于 StackOverflow