建议在哪里存储iOS应用程序的数据

时间:2015-06-11 16:32:48

标签: ios swift

我使用ionic和cordova创建了一个应用程序,现在我想在iOS上重新制作它。我是第一次使用iOS,我无法弄清楚如何存储数据。 例如:我有一个表单,用户必须输入一些数据,但输入不在一个视图中,必须有几个视图。我曾经创建过空数组,只是逐步放入所有内容,但现在我无法在多个视图上使用相同的视图控制器。试图用核心数据来做,但核心数据不能存储数组。我的对象看起来像这样:

var sampleArray = (
duration: 13,
dayOfTheWeek: Thursday,
personList: [
  (name: Rocky,
   age: 26),
  (name: Ralph,
   age:23)
  ]
)

问题是:我如何制作一个输入表格,该表格将在几个视图上以及我应该在哪里存储数据,以后我可以将所有数据存储到核心数据中?

2 个答案:

答案 0 :(得分:3)

您可以在iOS上以多种方式使用持久性数据。

用户默认

这是一个用于存储少量信息的工具,如用户设置,偏好设置等。请勿将其用于随应用程序使用而扩展的数据(例如记事本应用程序中的笔记)。 Documentation将回答有关用户默认值的所有问题。

数据库

你有Core Data作为开箱即用的解决方案,它建立在SQLite之上,需要一些时间来学习,但根据我的经验,这是值得的。您可以自由使用纯SQLite或其他数据库类型,但它需要更多代码和可能的自定义框架。

文本文件

您可以使用任意XMLJSONCSV文件来存储您的数据。工具很丰富(例如NSXMLParserSwifyJSON只是为了命名两个)如果你看Github,你会发现你需要的东西。您还可以使用易于掌握的NSCoderNSKeyArchiver / NSKeyUnarchiver组合构建。

二进制文件

最后,对于本地存储,您可以使用二进制文件,即图像。这是一个太高级的主题,我想在这里分享一个Open Raster file format的例子。它用于保存绘制应用程序(例如GIMP)和内部的信息,它基本上是一个XML文件和一堆压缩到zip并命名为 .ora 文件的图像。为混合格式创建自己的规范并不难。

网络存储库

为了不忽略其他方法,您可以使用远程数据库API在设备外部存储数据,但当然您需要自己的主机和一些后端技能。

我希望我没有错过重要的事情。我只想在一个地方总结这些知识以供将来参考。

答案 1 :(得分:2)

正如第一条评论所说,你的问题非常大。 当你说'几个视图中的一个表单'时,我认为它是'每个视图的一个表单'。 保持简单S ...;) (除非您对表单使用页面控制。)

基本上,您有三种方法来存储数据:

  • NSUserDefaults: 将数据存储在Dictionary中供以后使用
  • 档案: 将数据保存到文件中(为什么不像.csv那样?)
  • CoreData: 您可以将数组作为二进制数据保留在Core Data

有很多关于这些主题的教程。 www.raywenderlich.com网站是一个很好的开始......