我如何确保NotificationCenter中的观察者只被调用一次 - 特别是当应用程序崩溃/必须由 Xcode 停止时?
假设我想打印通知NSNotification.WhatHaveYou
。
init() {
NotificationCenter.default.addObserver(forName: NSNotification.Name.WhatHaveYou, object: nil, queue: OperationQueue.main, using: { (notification) in
print(notification)
})
}
哪个工作正常。
苹果在其文档中NotificationCenter.default.addObserver(forName:, object:, queue:, using:)
声明:
收到通知时要执行的块。
该块由通知中心复制并保留(副本)直到观察者注册被删除。
但是我怎样才能使这个观察者注册被删除,以便下一个应用程序启动时没有注册进一步的通知?
尤其是当应用程序崩溃或我通过 Xcode 停止应用程序时,观察者不会被删除,因此通知将显示多次 - 更准确地说:lastNumberOfOccurences = lastNumberOfOccurences +1
如何正确处理?
更新
到目前为止,我找到了这些资源