build议iOS应用程序的数据存储位置

我已经创build了一个应用程序使用离子和cordova,现在我想重新在iOS上。 我第一次和iOS一起工作,我不知道如何存储数据。 例如:我有一个表单,用户必须input一些数据,但input不在一个视图中,必须有多个视图。 我曾经创build空数组,只是把所有的一步一步,但现在我不能使用多个视图相同的视图控制器。 试图用核心数据做,但核心数据不能存储数组。 我的对象看起来像这样:

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

问题是:我怎样才能制作一个input表单,这个input表单可以放在几个视图上,我应该在哪里存储数据,以后我能够把所有的数据存储到核心数据中?

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

基本上,你有三种方式来存储数据:

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

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

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

用户默认

这是一个工具,用于存储less量的信息,如用户设置,首选项等。不要用于数据将随着应用程序的使用(如记事本应用程序中的笔记)。 文档将回答有关用户默认的所有问题。

数据库

您将Core Data作为一种开箱即用的解决scheme,它build立在SQLite之上,需要一些时间来学习,但从我的经验来看,这是值得的。 您可以自由使用纯SQLite或其他数据库types,但它需要更多的代码和可能的自定义框架。

文本文件

您可以使用任意的XMLJSONCSV文件来存储您的数据。 工具是丰富的(例如NSXMLParser或SwifyJSON只是两个名称),如果你看Github,你会发现你需要什么。 您也可以使用容易掌握的NSCoder和NSKeyArchiver / NSKeyUnarchiver的组合来构build。

二进制文件

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

networking存储库

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

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