我使用iCloud 键值存储,没有任何容器(因为我不需要文档)。
因此该应用未列在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时,它会在后台终止。没有任何通知被调用,也没有重新启动。
我应该只是设置一个我永远不会使用的文档容器吗?
答案 0 :(得分:2)
打开 iCloud Documents 后,我有了令牌(应用权利也获得了一些新值)。
但即使我在给定应用的设备设置中关闭iCloud Drive(!),ubiquityIdentityToken
现在也会返回值。它不会从Key-Value存储中提取更新,但仍设置了令牌。
关闭时只有URLForUbiquityContainerIdentifier
返回nil,打开时返回URL。