如何检测用户是否登录到iCloud?

var*_*ian 5 ios icloud

我怎么会发现专门如果一个用户登录到iCloud的?检查URLForUbiquityContainerIdentifier的返回值非常有限:

1)无法区分未登录iCloud的用户和其他情况,例如未启用iCloud的用户。2)如果在游戏仍在后台运行时用户从“设置”应用登录iCloud,然后返回该应用以尝试访问iCloud服务,似乎并没有改变其行为。

有没有更可靠的方法来专门检测用户是否已登录?

jos*_*new 5

另外,从iOS 6开始,还有方法[[NSFileManager defaultManager] ubiquityIdentityToken],它告诉您iCloud是否可用以及用户是否切换了帐户


Tom*_*ton 1

无法区分“用户未登录”和“iCloud 未启用”。您在应用程序中要了解的是您的应用程序当前是否可以访问 iCloud,但如果答案是否定的,那么您将不知道原因。

然而,你的问题#2有一个解决方案——观察NSUbiquityIdentityDidChangeNotification。只要整个 iCloud 状态发生变化(用户登录、用户注销、用户切换帐户),它就会触发。