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

时间:2012-07-16 17:41:08

标签: ios icloud

如果用户登录iCloud,我如何检测具体?检查URLForUbiquityContainerIdentifier的返回值非常有限:

1)无法区分未登录iCloud的用户与其他场景,例如iCloud未启用。 2)如果用户在游戏仍然在后台运行时从“设置”应用登录iCloud,它似乎不会改变其行为,然后返回到应用程序以尝试访问iCloud服务。

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

3 个答案:

答案 0 :(得分:5)

此外,从iOS 6开始,方法[[NSFileManager defaultManager] ubiquityIdentityToken]会告诉您iCloud是否可用以及用户是否已切换帐户

答案 1 :(得分:1)

没有办法区分“用户未登录”和“未启用iCloud”。您在应用中了解的是您的应用目前是否可以访问iCloud,但如果答案为否则您无法了解原因。

但是,您的问题有一个解决方案#2 - 观察NSUbiquityIdentityDidChangeNotification。它会在整个iCloud状态发生变化时触发 - 用户登录,用户注销,用户切换帐户。

答案 2 :(得分:0)

func isUserSignedIntoICloud() -> Bool {
    return FileManager.default.ubiquityIdentityToken != nil
}