如果您提供支持iOS 8及以下版本,则必须在dealloc或viewWillDisappear中删除观察者。更详细的答案可以在这里找到。如果您从iOS 9开始提供支持,则不再需要手动删除观察者。根据苹果文档:在OS X 10.11和iOS 9.0中,NSNotificationCenter和NSDistributedNotificationCenter将不再向可能被释放的已注册观察者发送通知。如果观察者能够作为零弱引用存储,则底层存储将将观察者作为零弱引用存储,或者如果对象无法弱存储(即它具有自定义保留/释放机制,该机制会防止运行时能够弱存储对象),则它将对象存储为非弱零引用。这意味着观察者不需要在其解除分配方法中取消注册。更详细的解释可以在这里找到。注意:但是,要谨慎使用基于块的通知,如上面链接的文档中所述。