如果用户登录iCloud,我如何检测具体?检查URLForUbiquityContainerIdentifier的返回值非常有限:
1)无法区分未登录iCloud的用户与其他场景,例如iCloud未启用。 2)如果用户在游戏仍然在后台运行时从“设置”应用登录iCloud,它似乎不会改变其行为,然后返回到应用程序以尝试访问iCloud服务。
是否有更可靠的方法来检测用户是否已登录?
答案 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
}