ubiquityIdentityToken与CKContainer accountStatusWithCompletionHandler

时间:2015-07-30 07:42:48

标签: ios icloud cloudkit

哪种方法最好决定登录哪个用户?

let ubiquityIdentityToken = NSFileManager.defaultManager().ubiquityIdentityToken

返回一个令牌,客户端可以比较它与上次相同。如果设备也处于脱机状态,它将返回令牌的优势。

accountStatusWithCompletionHandler仅返回状态值,但不返回有关谁登录的ID或令牌。因此,在离线模式下,它是无用的。

我是对的吗?

我的另一个问题是,有时甚至用户都已登录,而在线ubiquityIdentityToken则返回nil。

如何在启动时检索用户ID?

1 个答案:

答案 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状态发生变化时,它会通知您的应用。