0

我遵循了关于通过 iCloud 同步首选项的 Apple 文档 - 本质上,迭代“更新”用户信息中的每个键并将其设置为[NSUserDefaults standardDefaults].

但是我有一些其他数据我想以相同的格式保存,但不应该同步 - 只是一小部分NSDictionaries.

有没有办法以相同的方式将它们存储在不同的地方?或者我应该更改我的“更新表单 iCloud”方法以通过键名明确排除这些?这对我来说似乎有点不灵活且容易出错(记住每当我更改我想在本地存储的内容时更新“要排除的键”)。

4

1 回答 1

2

您可以将此类数据存储在“<Library folder>/Application Support/<app bundle id>”中 - 使用标准 API 来定位用户的 Library 文件夹(将在您的容器中)。“应用程序支持”文件夹本身可能不存在,因此您必须检查并在需要时创建。除非您创建它,否则您自己的应用程序的文件夹将不存在,因此请检查并创建。

各种集合具有从 URL 读取/写入的方法,例如NSArray

+ (id)arrayWithContentsOfURL:(NSURL *)aURL;
- (BOOL)writeToURL:(NSURL *)aURL atomically:(BOOL)flag;

一旦你有了上面目录的路径,就为一个适当命名的文件创建一个 URL,例如“theArrayOfDictionaries.plist”,并使用这些方法来读/写它。唯一需要注意的是集合只能包含可以存储在属性列表中的类型。如果您有非 plist 类型,例如NSColor或您自己的类,那么您需要将它们转换为NSData写入/读取之前/之后 - 请参阅此页面了解如何为 执行此操作NSColor,其他类型可以类似地处理。

HTH。

于 2013-06-18T18:52:45.623 回答