我想在iCloud帐户状态更改时在我的iOS应用中收到通知,因此我通过注册
NotificationCenter.default.addObserver(self, 选择器:#selector(iCloudAvailabilityChanged), 名称:Notification.Name.CKAccountChanged, 对象:无)
确实,当我后台我的应用程序,并在“设置”中翻转该应用程序的iCloud开关,然后返回并显示我的应用程序时,我会在applicationWillEnterForeground之后收到通知。
但是,如果我重复此操作,请第二次使我的应用程序后台运行,拨动开关,然后再次使我的应用程序前台,则不会收到通知。如果我第三次,第四次等等,也不会。
这种行为有时不会发生在我身上,但总是发生在我身上,我尝试在不同的设备上进行操作,并且都是一样的。
我使用iOS 13和Swift 5。
这是预期的行为,还是一个错误,或者我做错了什么?谢谢您的帮助!
答案 0 :(得分:0)
正如我在上面的评论所暗示的,我认为您可能会拨错开关。据我了解,CKAccountChanged
会在您更改以下两项内容之一时触发:
Settings > iCloud Profile > iCloud > iCloud Drive
中)我还没有读过任何关于更改特定应用程序的iCloud可用性将触发CKAccountChanged
的信息。