我应该删除NSUbiquitousKeyValueStoreDidChangeExternallyNotification的通知

时间:2014-04-21 07:50:56

标签: ios icloud nsnotificationcenter

我正在使用本教程开始:
http://www.raywenderlich.com/63269/how-to-save-your-game-data-tutorial-part-2-of-2

我已经使用它,实现它并进行测试,一切正常。

在这里,我发现只应在dealloc中删除通知(在文章的最后)  http://subjective-objective-c.blogspot.com/2011/04/avoid-nsnotification-removeobserver.html

我的问题是我应该删除NSUbiquitousKeyValueStoreDidChangeExternallyNotification的通知吗? 用什么方法?

1 个答案:

答案 0 :(得分:1)

通常,对于任何通知,请在不再关心通知时停止观察。您不再关心的一个案例是当观察通知的对象被解除分配时。

第二篇文章告诉你的是removeObserver:通常不是最好的选择。它会从所有通知中删除观察者。这包括您注册的通知以及框架在内部使用的通知。正如文章所解释的那样,使用removeObserver:name:object:明确注销每个通知最好。它没有告诉您,您只应取消注册dealloc中的通知,它会告诉您只应使用removeObserver:方法取消注册通知 >在dealloc。这是一个很好的建议,但在任何需要使用它们的地方使用其他删除观察器方法都可以。

这通常意味着您要在dealloc中取消注册,但这实际上取决于您的代码执行的操作以及何时需要接收通知。