我正在尝试为我的应用程序添加iCloud支持,并遵循苹果的 iCloud设计指南。该指南表示,我应该通过调用
我遇到的问题是,
为什么一个方法会暗示没有iCloud连接,而另一个则不是呢?
[NSFileManager ubiquityIdentityToken]
来检查用户凭据。它还说,我应该检查 [NSFileManager URLForUbiquityContainerIdentifier:]
以使应用程序的普及容器可用。我遇到的问题是,
ubiquityIdentityToken
返回 nil
,而 URLForUbiquityContainerIdentifier:
不是这样。因为后者返回正确的URL,所以我假设我的配置文件和权限设置正确。我还双重检查了运行应用程序的设备是否启用了iCloud,并且已经登录并启用了文档和数据。为什么一个方法会暗示没有iCloud连接,而另一个则不是呢?
更新:
我注意到,如果我调用ubiquityIdentityToken
,它会在调用URLForUbiquityContainerIdentifier:
之后返回一个值。然而,如果我的应用程序使用键值存储而不是普遍容器,ubiquityIdentityToken
将如何工作?
nil
。除非我首先调用URLForUbiquityContainerIdentifier:
。这对我来说毫无意义,特别是因为我实际上不希望我的应用程序使用普及容器;它将完全依赖于NSUbiquitousKeyValueStore
。 - circuitlegoiCloud文档
并登录了iCloud,但从NSFileManager.defaultManager()。ubiquityIdentityToken
返回了一个 nil,这很奇怪。 - János