6

我正在开发使用 iCloud 键值存储的 OSX 10.8 应用程序。它不使用文档存储。

我想确定用户是否可以使用 iCloud 键值存储。

我试图像这样使用云:

+ (BOOL)isCloudAvailable {
       id currentCloudToken = [NSFileManager defaultManager] ubiquityIdentityToken];
       return (currentCloudToken) ? YES : NO;
}

但是,调用ubiquityIdentityToken总是返回 nil,即使用户登录到 iCloud 也是如此。

如果我配置了 Ubiquity Container 以及键值存储,那么该调用确实有效。

但是,我刚刚让我的应用程序被 Apple 审核拒绝,因为它表明我需要“文档和数据存储”,而应用程序对此没有任何要求。我只是用它来确定 iCloud 是否可用。

有没有办法确定用户是否可以单独使用 iCloud 键值存储?

4

1 回答 1

12

iCloud 基础指南有一个表格,将文档存储与键值存储进行了比较(表 1-1)。与移动文档相反,键值存储应被视为始终有效可用

未启用 iCloud 时[NSUbiquitousKeyValueStore defaultStore]也不nil是,它甚至存储键/值对 - 它只是不将它们上传到 iCloud 服务器。从 NSUbiquitousKeyValueStore 的角度来看,离线注销之间几乎没有区别。

您还必须记住,一旦设备连接到帐户,已存储的值就会被推送到服务器。可能有必要处理冲突(如果默认的最后一胜策略不适用于您的用例)。

于 2013-06-12T06:01:14.550 回答