哪种方法最好决定登录哪个用户?
let ubiquityIdentityToken = NSFileManager.defaultManager().ubiquityIdentityToken
返回一个令牌,客户端可以比较它与上次相同。如果设备也处于脱机状态,它将返回令牌的优势。
accountStatusWithCompletionHandler
仅返回状态值,但不返回有关谁登录的ID或令牌。因此,在离线模式下,它是无用的。
我是对的吗?
我的另一个问题是,有时甚至用户都已登录,而在线ubiquityIdentityToken
则返回nil。
如何在启动时检索用户ID?
答案 0 :(得分:4)
如果你正在使用CloudKit,那么CKContainer accountStatusWithCompletionHandler
方法就是你应该如何检查用户是否登录到iCloud(从iOS 8.0开始支持)。 CloudKit Quick Start shows an example如何使用它。
fetchUserRecordIDWithCompletionHandler
是您应该如何获取用户的记录ID,该记录ID的范围限定为CloudKit容器,但跨设备的iCloud帐户相同。
在iOS 9.0中,您还会CKAccountChangeNotification
,当设备上的iCloud状态发生变化时,它会通知您的应用。