【问题标题】:iPhone local storage -- Core Data, NSFileManager, ...?iPhone 本地存储——Core Data、NSFileManager、...?
【发布时间】:2012-03-29 10:28:29
【问题描述】:
我正在制作一个简单的 iPhone 应用程序,它基本上是一个编辑器。
因此,我需要一些方法来存储用户创建的文档。
由于在 iPhone 上,用户没有文件系统的概念,所以我四处寻找应该使用什么。
我发现this question 和答案基本上说要使用 Core Data,但我最近发现了 NSFileManager。
我的问题很简单,对于用户创建的文档,最好使用什么存储系统?使用 NSFileManager 的传统文件?核心数据?还有什么?
【问题讨论】:
标签:
ios
core-data
nsfilemanager
【解决方案1】:
如果您用于显示文件的所有数据都包含在一个长字符串中(如 HTML),那么我建议您使用文件管理器,因为它很容易获得某个目录中的文件列表以显示给用户打开。但是,如果它们不是自包含的(例如 NSAttributedString,它具有许多存储的格式化区域以及实际内容),那么您应该使用 CoreData,因为将所有部分放在一起会更容易。
【解决方案2】:
就个人而言,我会使用 CoreData,因为它会为您抽象出所有文件管理代码。如果您正在制作简单的文本文档,那么这没什么大不了的,但是如果您正在使用复杂的文档架构(即,一个包含大量对象的集合),那么它可以为您节省很多精力。
如果用户想要导出他们的文档,使用您的 CoreData 对象编写一个函数非常容易。
CoreData 的唯一缺点是,如果您使用非标准属性,它可能会有点棘手,但在大多数情况下它肯定不会破坏交易。
人们总是在没有 CoreData 的情况下创建文档格式,所以有很多例子,这取决于个人喜好。对此确实没有任何普遍的正确答案 - 这是一个应该基于每个应用程序进行评估的设计决策。