未收到 CKAccountChanged 通知

CKAccountChanged notifications not received

我想在 iCloud 帐户状态更改时收到通知。

因此,我通过以下方式注册了这些通知:

NotificationCenter.default.addObserver(self, 
                                       selector: #selector(iCloudAvailabilityDidChange), 
                                       name: .CKAccountChanged, 
                                       object: nil)  

并期望相应地调用 iCloudAvailabilityDidChange

@objc func iCloudAvailabilityDidChange(_ notification: Notification) {
    handleICloudAccountStatus()
}  

为了检查这些通知,我在 iCloudAvailabilityDidChange 和 运行 Xcode 下的应用程序中设置了一个断点。
然后我发出 Home,打开系统设置应用程序,然后登录 iCloud 帐户或注销它。

我预计Xcode会到达断点,但事实并非如此
有什么问题吗?

编辑:

可能问题与docsCKAccountChanged中的以下信息有关,我不明白:
通知由 CKContainer class 的实例发送。如果没有 class 的实例,则不会发送通知。
我不明白的是 CKContainer.default() 应该总是被定义。

已解决的问题:

首先,必须访问容器,例如通过

let container = CKContainer.default()  

这将实例化可以发送此类通知的容器对象。

其次,要获得通知,必须 运行 应用程序,轻按主页按钮,打开系统设置,登录或注销 to/from iCloud 帐户, 和切换回应用。只有这样才会发送通知。