17

当我开发 iPhone 应用程序(时间跟踪器、ToDoList 等)时,我永远不知道处理数据的最佳方式是什么。一旦我使用了 plist,下次使用 sqlite 或 CoreData。

你如何决定什么最适合你的项目?(只谈数据管理)

例如,如果您想开发:

  • Time Tracker App > PList 是您的选择吗?
  • RSS 阅读器应用程序 > CoreData?
  • 照片应用 > sqlite?
  • 电子邮件客户端 > ?

对于初学者,您能否大致指出正确的方向?(我知道这在很大程度上取决于应用程序以及您喜欢用它做什么,但任何想法都会有所帮助)

我离开发复杂的应用程序还很远,它们仍然很简单。

谢谢你的帮助,马克

4

2 回答 2

29

您可以使用这些经验法则来决定哪种存储模型适用于您的应用程序。

  • 如果数据完全适合内存并且相对非结构化,请使用 plist
  • 如果数据完全适合内存并具有树状结构,请使用 XML
  • 如果数据不适合内存并且具有图的结构,并且应用程序不需要非凡的查询能力,请使用 Core Data
  • 如果数据不适合内存,结构复杂,或者应用程序受益于关系数据库提供的强大查询能力,请使用 sqlite
  • 如果数据必须保密(例如密码),请使用keychain

请注意,这些选择经常重叠,因为多个存储模型将适合同一个应用程序。您的最终决定取决于您的个人喜好——您选择一种您更了解的技术。

在 Stack Overflow 上有一个关于 sqlite vs. Core Data 的非常好的问题,您可能想通读该问题的答案。

于 2012-04-20T11:09:34.383 回答
1

我对每一个的经验法则是:

  • 时间跟踪器应用程序 > 核心数据
  • RSS 阅读器应用程序 > 核心数据
  • 照片应用 > 核心数据
  • 电子邮件客户端 > 核心数据

尽管在每种情况下,您都会将某些内容存储在文件系统中。例如,照片应用程序显然会将实际照片放在文件系统上。电子邮件的文本将在文件系统等上。实际的 RSS 消息也可能是文本文件,但在核心数据对象中包含元数据。

在某些时候,您可能会发现您存储的数据超出了 Core Data 的可扩展性。那时你会考虑迁移到 SQLite。

关键是 Core Data 非常易于使用,并且优于所谓的轻量级替代品,您为什么不使用它呢?

于 2012-04-20T12:22:33.730 回答