【问题标题】:Storing data on iPhone/ iPad在 iPhone/iPad 上存储数据
【发布时间】:2011-09-15 08:22:24
【问题描述】:

我想开发一个应用程序,它可以在启动时下载大量数据,然后根据用户所在的位置在整个应用程序中显示这些数据。

数据将包含客户、发票、库存等信息,但我想一次性下载所有数据,省去不断下载/传输数据的麻烦。这也使用户能够离线工作。

我的问题是:在 iOS 上存储这些数据的最佳方式是什么?我已经研究过 CoreData,但想知道这是否是正确的路径,然后再投入太多时间来学习它。

【问题讨论】:

    标签: objective-c database ios cocoa-touch core-data


    【解决方案1】:

    Core Data 几乎总是要走的路。它有一个学习曲线,但在你爬上它之后,Core Data 让一切变得更容易。

    Core Data 不只是一个持久性 API,它是一个用于创建模型-视图-控制器设计应用程序的整个模型层的 API(Apple API 使用它)。因此,一旦您学习了 Core Data,您就会拥有一个生成应用程序的逻辑“胆量”的非常快速和简单的方法。学习核心数据将显着提高应用程序的开发速度以及可靠性和可维护性。

    但是,可用技能组合和时间的现实限制可能会迫使您选择其他选项。请参阅this previous answer,了解何时使用 Core Data 与其他方法的对比。

    【讨论】:

      【解决方案2】:

      CoreData 是最常用的数据存储,但这一切都取决于。例如,如果您有很多 PDF 想要下载,那么您不会将它们放在 CoreData 本身中,但您会将文件保存到用户文档目录并通常在 CoreData 中添加详细信息(名称、路径等)以快速检索。

      对于更普通的数据,例如客户详细信息、地址等,您可以使用 CoreData 轻松地从您的域层(客户对象、地址对象)转到持久存储。

      CoreData 在我看来值得一读。如果您想快速入门,那么我有示例代码,其中包含此 article. 的代码中的存储服务,请随意使用/破解/让我知道您的想法! ;) 祝你好运!

      【讨论】:

        【解决方案3】:

        有很多不同的方法。首先,我建议您使用 JSON 或 RSS 下载数据。下载后,您可以使用 Core Data、SQLite 或 Plists。

        我会推荐 Core Data 而不是 SQLite。所以基本上它是Core Data vs. Plists。现在,如果您想运行复杂的查询,请使用 Core Data。如果您只想以数组/字典的形式(也可以嵌套)存储简单数据,那么请选择 Plist。

        This link 应该很有用。过一遍。

        【讨论】:

          【解决方案4】:

          Core Data 适用于大多数事情,除非您真的需要优化数据存储和访问,否则它会起作用,并且由于您应该最后优化,这就是我在您的情况下会做的事情。

          【讨论】:

            【解决方案5】:

            这一切都取决于你想对你的数据做什么以及它是什么格式。

            无论你是:

            • 将二进制文件直接转储到设备上(例如 pdf 或 jpg)

            • 创建实现 NSCoding 的类并使用 NSKeyedArchiver 来存储它们(例如用于从 Web 服务检索的数据)

            • 使用核心数据来存储日期。如果您的对象之间有更复杂的关系和/或想要搜索/过滤数据集,这很方便

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2011-12-23
              • 2011-07-07
              • 2011-07-18
              • 1970-01-01
              • 1970-01-01
              • 2011-06-29
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多