大家好,我还有一个问题。这次是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];

}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top