如何检测设备上的iCloud帐户是否已更改?

erk*_*diz 10 macos objective-c user-accounts ios icloud

如何检测设备上使用的iCloud帐户是否已更改?

用户从"设置">"iCloud"注销,其他用户登录他/她的帐户.

应用程序打开时如何检测此更改?

Iva*_*vyi 18

只需添加名称通知的观察者即可 NSUbiquityIdentityDidChangeNotification

[[NSNotificationCenter defaultCenter]
    addObserver: self
       selector: @selector (iCloudAccountAvailabilityChanged:)
           name: NSUbiquityIdentityDidChangeNotification
         object: nil];
Run Code Online (Sandbox Code Playgroud)

如果用户退出iCloud,例如关闭"设置"中的"文档和数据",则ubiquityIdentityToken方法将返回nil.要使您的应用能够检测到用户何时退出并重新登录,请注册iCloud帐户可用性的更改.- Apple文档

http://developer.apple.com/library/mac/#documentation/General/Conceptual/iCloudDesignGuide/Chapters/iCloudFundametals.html

  • 用户还可以在您的应用未运行时注销或重新登录.您应该在某处保存ubiquity标记的值,并在应用程序启动时将当前值与先前保存的值进行比较. (6认同)