是否删除观察员必须(必要)?

有一个观察者,我需要在所有的应用程序生命周期中,我是否将它删除? 我认为GC会在应用程序closures后将其删除,对吗? 如果是的话,那么我什么时候可以删除它? 在deinit

如果你正在提供对iOS 8和之前的支持。 您将不得不删除deallocviewWillDisappear中的观察者。 更详细的答案可以在这里find。

如果您从iOS 9开始提供支持,则不再需要手动删除观察者。 从苹果文档:

在OS X 10.11和iOS 9.0中,NSNotificationCenter和NSDistributedNotificationCenter将不再向可能被释放的注册观察者发送通知。 如果观察者能够被存储为零弱引用,则底层存储将把观察者存储为一个归零弱引用,或者如果该对象不能被弱存储(即,它具有定制的保留/释放机制,这将阻止运行时从弱存储对象)它将存储对象作为一个非弱的归零引用。 这意味着观察员不需要取消注册方式。

更详细的解释可以在这里find。

注意:但是,在使用上面链接的文档中提到的基于块的通知时要小心。