如何将我的 NSUserDefaults .plist 同步到 iCloud?
Posted
技术标签:
【中文标题】如何将我的 NSUserDefaults .plist 同步到 iCloud?【英文标题】:How do I sync my NSUserDefaults .plist to iCloud? 【发布时间】:2014-05-12 03:12:39 【问题描述】:我需要将我的程序的 .plist
同步到 iCloud,以更新 tableView
并存储在云中。我该怎么做呢?我一直在看的所有教程似乎都已过时或令人困惑。有什么简单的方法可以解决这个问题吗?
【问题讨论】:
什么令人困惑?你试过什么代码? 尝试了 MKiCloudSync,但这似乎已经过时了。除了在程序的功能部分启用 iCloud 之外,我真的不知道从哪里开始。 "...我的程序的核心数据 .plist..." 在 ios 开发的上下文中不是一个有意义的短语。您是否尝试同步 plist、Core Data 或两者,或者其他什么? Can I use iCloud to sync the NSUserDefaults plist file的可能重复 我正在尝试同步我的 nsuserdefaults 毛绒。迦勒那个似乎已经过时了 【参考方案1】:来自Apple iCloud Design Guide,
键值存储用于离散值,例如偏好、设置和简单的应用状态。 文档存储,用于存储用户可见的基于文件的信息,例如文字处理文档、绘图和复杂的应用状态。 核心数据存储,适用于鞋盒式应用和基于服务器的多设备数据库解决方案,适用于结构化内容。 iCloud Core Data 存储建立在文档存储之上,并使用相同的 iCloud API。iCloud 支持三种存储方式。选择正确的一个(或 组合)为您的应用程序,确保您了解意图和 每个人的能力。三种 iCloud 存储是:
因此,您不会将 NSUserDefaults (plist) 同步到 iCloud;您将开始使用 NSUbiquitousKeyValueStore 对象。
来自Designing for Key-Value Data in iCloud:
就像你使用 NSUserDefaults 对象一样,使用 iCloud 键值对 存储以保存和检索标量值(例如 BOOL)和 属性列表对象类型:NSNumber、NSString、NSDate、NSData、 NSArray 和 NSDictionary。数组和字典值可以包含任何 这些值类型。
NSUbiquitousKeyValueStore 类提供读取和 编写这些类型中的每一个,如 NSUbiquitousKeyValueStore 中所述 类参考。
【讨论】:
嘿@Black Frog,是否可以将 .plist 文件作为文档存储在 iCloud 中?键值存储有其局限性,Apple 已经提供了可以使用的 Plist 解码器。 Apple 自己的文档确实说 iCloud 文档存储是为复杂的应用程序状态而设计的,这正是我需要的解决方案。以上是关于如何将我的 NSUserDefaults .plist 同步到 iCloud?的主要内容,如果未能解决你的问题,请参考以下文章
存储 NSUserDefaults (Xcode) 时避免重复