我使用ionic和cordova创建了一个应用程序,现在我想在iOS上重新制作它。我是第一次使用iOS,我无法弄清楚如何存储数据。 例如:我有一个表单,用户必须输入一些数据,但输入不在一个视图中,必须有几个视图。我曾经创建过空数组,只是逐步放入所有内容,但现在我无法在多个视图上使用相同的视图控制器。试图用核心数据来做,但核心数据不能存储数组。我的对象看起来像这样:
var sampleArray = (
duration: 13,
dayOfTheWeek: Thursday,
personList: [
(name: Rocky,
age: 26),
(name: Ralph,
age:23)
]
)
问题是:我如何制作一个输入表格,该表格将在几个视图上以及我应该在哪里存储数据,以后我可以将所有数据存储到核心数据中?
答案 0 :(得分:3)
您可以在iOS上以多种方式使用持久性数据。
这是一个用于存储少量信息的工具,如用户设置,偏好设置等。请勿将其用于随应用程序使用而扩展的数据(例如记事本应用程序中的笔记)。 Documentation将回答有关用户默认值的所有问题。
你有Core Data作为开箱即用的解决方案,它建立在SQLite
之上,需要一些时间来学习,但根据我的经验,这是值得的。您可以自由使用纯SQLite
或其他数据库类型,但它需要更多代码和可能的自定义框架。
您可以使用任意XML
,JSON
或CSV
文件来存储您的数据。工具很丰富(例如NSXMLParser或SwifyJSON只是为了命名两个)如果你看Github,你会发现你需要的东西。您还可以使用易于掌握的NSCoder和NSKeyArchiver / NSKeyUnarchiver组合构建。
最后,对于本地存储,您可以使用二进制文件,即图像。这是一个太高级的主题,我想在这里分享一个Open Raster file format的例子。它用于保存绘制应用程序(例如GIMP)和内部的信息,它基本上是一个XML文件和一堆压缩到zip并命名为 .ora 文件的图像。为混合格式创建自己的规范并不难。
为了不忽略其他方法,您可以使用远程数据库API在设备外部存储数据,但当然您需要自己的主机和一些后端技能。
我希望我没有错过重要的事情。我只想在一个地方总结这些知识以供将来参考。
答案 1 :(得分:2)
正如第一条评论所说,你的问题非常大。 当你说'几个视图中的一个表单'时,我认为它是'每个视图的一个表单'。 保持简单S ...;) (除非您对表单使用页面控制。)
基本上,您有三种方法来存储数据:
有很多关于这些主题的教程。 www.raywenderlich.com网站是一个很好的开始......