一个简单的iOS应用程序的数据存储方法是什么?

时间:2012-05-23 21:11:05

标签: iphone database sqlite database-design core-data

我正在编写一个天气应用程序,根据当前的条件/温度了解您的穿着,告诉您应该在外面穿什么。我正在收集一些简单的数据并将其存储在设备上。我正在收集:

  • 日期/时间
  • 天气温度
  • 天气状况
  • 6个int字段:
    • 附件

我将根据当前温度/条件查询数据,以获得6个int字段中的值的平均值,以预测用户通常会穿什么。

我只在iPhone上保留这个。什么是一个好的,客户端,数据存储方法呢?查询不是太强烈,但我需要查询类型和范围。

之前我没有使用过Core Data。非常熟悉MySQL,但没有触及过SQLite。同样,我想保留这个客户端,而不是为了简单/速度而使用数据库。我的目标是进入/退出应用程序。

2 个答案:

答案 0 :(得分:2)

我建议使用Core Data或SQLite。你的权利,这不是很多数据存储。如果该应用程序成功,您想扩展您的概念怎么办?

例如:

(1)您想存储更多数据

(2)可能将数据同步到服务器

(3)更改存储的数据类型

你甚至在你的问题中提到了QUERY,对我来说这就是你的答案。使用Core Data可以轻松实现这一切。将会有一个学习曲线,但学习这个框架将有利于未来的项目。

祝你的项目好运。

答案 1 :(得分:1)

之前的海报推荐SQLite上的Core Data。虽然他们建议使用这两种方案中的一种是正确的,但如果您已经熟悉MySQL并且正在寻找一个get-in / get-out应用程序,我建议您选择SQLite。

核心数据是一个优秀的框架,但考虑到您的规格和您以前的经验,有一个学习曲线可能不值得。 SQLite简单,快速,客户端。此外,您的查询与MySQL没有任何不同。

其他海报提到序列化NSUserDefaults或NSKeyedArchiver。虽然它们确实使序列化变得简单,但您最终将使用NSPredicate滚动自己的查询代码。这并不困难,但同样,它可能是一项新技术,虽然值得,但可以更好地保存一段时间。更令人担忧的是,如果您的应用程序确实快速开始使用大量数据,它们将无法很好地扩展。

关于规模更普遍,如果您的应用确实变得非常成功,那么就要担心它。您可以随时进行重构和缩放。