【发布时间】:2015-05-25 02:13:48
【问题描述】:
我使用 iCloud Key-Value 存储,没有任何容器(因为我不需要文档)。
所以应用没有在Settings / iCloud / Storage / Manage Storage列表中列出,只在iCloud / iCloud Drive列表中,像这样:
我真的很想知道它是打开还是关闭,或者根本可用。
似乎ubiquityIdentityToken 总是nil,而NSUbiquityIdentityDidChangeNotification 永远不会被调用。
我有一个工作原型,在模拟器中修改了一个滑块,它在设备上得到了更新,一切看起来都很好。即使,如果我询问标识符(在NSUbiquitousKeyValueStoreDidChangeExternallyNotification 回调中),它们始终为空:
NSURL *containerURL = [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil];
id token = [[NSFileManager defaultManager] ubiquityIdentityToken];
NSLog(@"containerURL: %@", containerURL);
NSLog(@"token: %@", token);
// containerURL: (null)
// token: (null)
当我为我的应用关闭 iCloud Drive 时,它会在后台终止。不会调用任何通知,也不会在重新启动时调用。
我应该设置一个我从不使用的文档容器吗?
【问题讨论】:
-
使用您的代码更新您的问题,以使用通知和获取令牌。如果需要,指出代码在哪里。
-
关于如何使用它们的文档非常详细,我已经全部通读过了。还有一个通过 KV 存储同步的漂亮工作原型。只有这个是我无法判断它是否启用或不使用上面的工具。我想当有人不使用 iCloud 容器,只使用 KV 存储时,它们不会被调用/填充。
-
许多 API 都有很好的文档记录,但是这个站点有大量关于这些文档 API 的问题。这并不意味着您的实施没有问题。发布您的代码以确保您没有做错任何事情。
标签: ios objective-c ios8 icloud key-value-store