CKAccountChanged通知仅收到一次

时间:2020-09-03 14:14:52

标签: ios13 cloudkit

我想在iCloud帐户状态更改时在我的iOS应用中收到通知,因此我通过注册

NotificationCenter.default.addObserver(self, 选择器:#selector(iCloudAvailabilityChanged), 名称:Notification.Name.CKAccountChanged, 对象:无)

确实,当我后台我的应用程序,并在“设置”中翻转该应用程序的iCloud开关,然后返回并显示我的应用程序时,我会在applicationWillEnterForeground之后收到通知。

但是,如果我重复此操作,请第二次使我的应用程序后台运行,拨动开关,然后再次使我的应用程序前台,则不会收到通知。如果我第三次,第四次等等,也不会。

这种行为有时不会发生在我身上,但总是发生在我身上,我尝试在不同的设备上进行操作,并且都是一样的。

我使用iOS 13和Swift 5。

这是预期的行为,还是一个错误,或者我做错了什么?谢谢您的帮助!

1 个答案:

答案 0 :(得分:0)

正如我在上面的评论所暗示的,我认为您可能会拨错开关。据我了解,CKAccountChanged会在您更改以下两项内容之一时触发:

  1. 在设备上登录/注销iCloud
  2. 打开/关闭iCloud Drive (在Settings > iCloud Profile > iCloud > iCloud Drive中)

我还没有读过任何关于更改特定应用程序的iCloud可用性将触发CKAccountChanged的信息。