CKAccountChanged 通知只收到一次
CKAccountChanged notification is only received once
我想在 iCloud 帐户状态更改时在我的 iOS 应用程序中收到通知,因此我通过
注册
NotificationCenter.default.addObserver(自己,
选择器:#selector(iCloudAvailabilityChanged),
姓名:Notification.Name.CKAccountChanged,
对象:无)
事实上,当我将我的应用程序置于后台,并在设置中为该应用程序切换 iCloud 开关,然后返回并将我的应用程序置于前台时,我会在 applicationWillEnterForeground 后立即收到通知。
但是,如果我重复此操作,那么第二次将我的应用程序置于后台,按下开关,然后再次将我的应用程序置于前台,则不会收到通知。如果我第三次、第四次等,也不会。
这种行为不是有时发生在我身上,而是总是发生,而且我在不同的设备上尝试过,结果都是一样的。
我使用 iOS 13 和 Swift 5.
这是预期的行为,还是错误,还是我做错了什么?感谢您的帮助!
正如我上面的评论所暗示的,我认为您可能拨错了开关。据我了解,当您更改以下两项之一时,CKAccountChanged
会被触发:
- 在设备上签署in/out iCloud。
- 打开iCloud Drive on/off(在
Settings > iCloud Profile > iCloud > iCloud Drive
)
我没有在任何地方看到更改特定应用程序的 iCloud 可用性会触发 CKAccountChanged
。
我想在 iCloud 帐户状态更改时在我的 iOS 应用程序中收到通知,因此我通过
注册NotificationCenter.default.addObserver(自己, 选择器:#selector(iCloudAvailabilityChanged), 姓名:Notification.Name.CKAccountChanged, 对象:无)
事实上,当我将我的应用程序置于后台,并在设置中为该应用程序切换 iCloud 开关,然后返回并将我的应用程序置于前台时,我会在 applicationWillEnterForeground 后立即收到通知。
但是,如果我重复此操作,那么第二次将我的应用程序置于后台,按下开关,然后再次将我的应用程序置于前台,则不会收到通知。如果我第三次、第四次等,也不会。
这种行为不是有时发生在我身上,而是总是发生,而且我在不同的设备上尝试过,结果都是一样的。
我使用 iOS 13 和 Swift 5.
这是预期的行为,还是错误,还是我做错了什么?感谢您的帮助!
正如我上面的评论所暗示的,我认为您可能拨错了开关。据我了解,当您更改以下两项之一时,CKAccountChanged
会被触发:
- 在设备上签署in/out iCloud。
- 打开iCloud Drive on/off(在
Settings > iCloud Profile > iCloud > iCloud Drive
)
我没有在任何地方看到更改特定应用程序的 iCloud 可用性会触发 CKAccountChanged
。