为啥 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 总是为零?的主要内容,如果未能解决你的问题,请参考以下文章
从 Xamarin 中的 UbiquityIdentityToken 的 NSObject 中获取 id