ios - 仅使用键值存储检测 iCloud 帐户可用性/更改?

标签 ios objective-c ios8 icloud key-value-store

我使用 iCloud 键值存储,没有任何容器(因为我不需要文档)。

因此,该应用不会在 Settings/iCloud/Storage/Manage Storage 列表中列出,仅在 iCloud/iCloud Drive 列表中列出,如下所示:

enter image description here

我真的想知道它是打开还是关闭,或者是否可用。

似乎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/

相关文章:

iOS IAP 收据包含旧的消耗品购买

ios - 将地址转换为经度和纬度

objective-c - Swift UIViewController UITableView编辑模式导致tableView部分返回nil

iphone - 多线程在获取照片时使用 GCD

ios - 将UDP请求发送到255.255.255.255并在iOS中等待回复

ios - 核心蓝牙 setNotifyValue 未将 CBCharacteristics 通知属性设置为 true

objective-c - 两个字符串的比较失败

iPhone - 将字符串转换为无符号字符

ios - Swift 中 iOS 8 中的 startBrowsingForNearbyPlayersWithHandler()

ios - GameKit 中的 Swift 完成处理程序