如何检测用户是否login到iCloud?

我如何检测用户是否login到iCloud? 检查URLForUbiquityContainerIdentifier的返回值是非常有限的:

1)它不能区分未签名的用户与其他情况,例如iCloud未启用。 2)如果用户在游戏仍在后台运行时从“设置”应用程序login到iCloud,则不会改变其行为,然后返回到应用程序尝试访问iCloud服务。

有一种更可靠的方式来检测用户是否login?

此外,从iOS 6上有方法[[NSFileManager defaultManager] ubiquityIdentityToken] ,它告诉你,如果iCloud是可用的,如果用户已经切换帐户

没有办法区分“用户未login”和“未启用iCloud”。 您在应用程序中所了解的是,您的应用程序目前是否可以访问iCloud,但如果答案是否定的,那么您就不知道为什么。

但是有一个解决你的问题#2 – 观察NSUbiquityIdentityDidChangeNotification 。 它随时会触发整个iCloud状态更改 – 用户login,用户注销,用户切换帐户。