首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >本地存储数据

本地存储数据
EN

Stack Overflow用户
提问于 2014-04-09 01:47:18
回答 3查看 5K关注 0票数 4

我有一个UIViewController供用户输入他们的数据并提交给我们的ASP.NET Webapi。大约有40 textField和其他控件。

有没有办法在本地保存输入。在用户单击submit按钮之前,数据将是不清楚的。我希望数据仍然在那里,甚至重新启动电话或重新启动程序。用XML保存?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-04-09 02:01:54

有相当多的选项可供您选择,复杂程度如下:

  • 使用NSKeyedArchiver保存到本地文件系统。这涉及到使模型类符合NSCoding协议。
  • 使用sqlite和本地数据库。can可能相当冗长,但是有一个很好的目标--C包装器,名为口蹄疫
  • 使用CoreData。这包括创建本地数据模型(对象模式),然后指示CoreData将对象持久化到其存储。存储通常是sqlite数据库(包括ACID遵从性--例如事务、原子性等),但是CoreData也知道如何执行二进制和XML格式。

无论您使用哪种方法,我都建议使用数据访问对象 (DAO)设计模式,它为持久性方法提供了一种协议。示例:

代码语言:javascript
复制
- (Customer*) findCustomByLastName:(NSString*)lastName
- (void) save:(Customer*)customer

。。通过这种方式,可以从一种非常简单的持久性风格开始,测试您的总体架构是如何集成到一个内聚应用程序中的,然后再以另一种更健壮的风格进行交换。下面是一个使用NSKeyedArchiver的文件系统DAO示例

其他方法

  • ActiveRecord模式是数据访问对象的另一种选择,有一些非常流行且支持良好的库提供了CoreData。使用ActiveRecord模式或DAO模式,但是您可能应该避免仅仅在视图控制器中转储所有的持久性代码!)
  • 尼克·洛克伍德创建了一个很好的实用程序,使使用NSKeyedArchiving变得更容易。
  • 对于简单的情况,您也可以使用NSUserDefaults
  • 如果需要安全性,您可以保存到密钥链。再一次,API是有点低水平,但有很好的包装。这里有一个
  • 自NeXTSTEP时代以来,NSDictionary提供了以各种格式将自己序列化到磁盘的方法。现代格式包括XML、JSON、二进制格式。(还有一些古怪的遗留格式,这些格式仍然可以阅读,但不推荐写入。。例如Xcode用于保存其project.pbxproj文件的一个文件)。
票数 6
EN

Stack Overflow用户

发布于 2014-04-09 01:52:27

您可以将数据存储在NSUserDefaults或SQLite数据库中。我推荐SQLite,但这完全取决于你的需要。关于如何在YouTube/apple dev文档中这样做,有大量的教程

票数 1
EN

Stack Overflow用户

发布于 2014-07-27 19:39:58

查看领域

直接运行在手机、平板电脑或可穿戴设备内的移动数据库。领域可以让你更快地构建应用程序,构建更快的应用程序,并制作以前不可能的体验。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22951334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档