我使用 iCloud 键值存储,没有任何容器(因为我不需要文档)。
因此,该应用不会在 Settings/iCloud/Storage/Manage Storage
列表中列出,仅在 iCloud/iCloud Drive
列表中列出,如下所示:
我真的想知道它是打开还是关闭,或者是否可用。
似乎ubiquityIdentityToken
始终nil
,并且 NSUbiquityIdentityDidChangeNotification
永远不会被叫到。
我有一个工作原型(prototype),修改模拟器中的 slider ,它在设备上更新,一切看起来都很好。即使如此,如果我请求标识符(在 NSUbiquitousKeyValueStoreDidChangeExternallyNotification
回调中),它们始终为 null:
NSURL *containerURL = [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil];
id token = [[NSFileManager defaultManager] ubiquityIdentityToken];
NSLog(@"containerURL: %@", containerURL);
NSLog(@"token: %@", token);
// containerURL: (null)
// token: (null)
当我关闭应用程序的 iCloud Drive 时,它会在后台终止。没有任何通知被调用,也没有在重新启动时被调用。
我是否应该简单地设置一个我从未使用过的文档容器?
最佳答案
打开iCloud 文档后,我就拥有了 token (应用程序权利也获得了一些新值)。
但是ubiquityIdentityToken
现在,即使我在给定应用程序的设备设置中关闭 iCloud Drive(!),也会返回值。它不会从键值存储中提取更新,但 token 仍然被设置。
仅 URLForUbiquityContainerIdentifier
关闭时返回 nil,打开时返回 URL。
关于ios - 仅使用键值存储检测 iCloud 帐户可用性/更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30430380/