为啥 ubiquityIdentityToken 总是为零?

Posted

技术标签:

【中文标题】为啥 ubiquityIdentityToken 总是为零?【英文标题】:Why is ubiquityIdentityToken always nil?为什么 ubiquityIdentityToken 总是为零? 【发布时间】:2015-07-13 05:28:16 【问题描述】:

我正在开发一个使用 CloudKit 的 ios 应用程序。 Apple 的文档说我应该使用 NSFileManager 的 ubiquityIdentityToken 属性来检测服务是否可用。但该属性始终为零。我该怎么做才能解决它?我正在使用 iOS 8.2 的 iPhone 5 模拟器上测试我的应用程序。而且我还登录了一个 iCloud 帐户。我还打开了 iCloud Drive。 (有人说打开 iCloud Drive 可能会解决这个问题,但这对我不起作用。)

我需要调用 NSFileManager 的方法 URLForUbiquityContainerIdentifier: 吗?但苹果的文档说它是文档存储所必需的。它并没有说 CloudKit 需要它。

【问题讨论】:

【参考方案1】:

CKContainer accountStatusWithCompletionHandler 方法是您应该如何检查用户是否登录到 iCloud(从 iOS 8.0 开始支持)。 CloudKit Quick Start shows an example 的使用方法。 fetchUserRecordIDWithCompletionHandler 是另一个可能对您的应用有意义的选项。

在 iOS 9.0 中,您还将拥有CKAccountChangeNotification,它会在设备上的 iCloud 状态发生变化时通知您的应用。

【讨论】:

以上是关于为啥 ubiquityIdentityToken 总是为零?的主要内容,如果未能解决你的问题,请参考以下文章

UbiquityIdentityToken 返回 Null

从 Xamarin 中的 UbiquityIdentityToken 的 NSObject 中获取 id

iOS 和 iCloud:ubiquityIdentityToken 和密码更改或设备恢复

应用内的 iCloud 登录

你应该同步运行方法吗?为啥或者为啥不?

为啥使用 glTranslatef?为啥不直接更改渲染坐标?