我有一个UIViewController供用户输入他们的数据并提交给我们的ASP.NET Webapi。大约有40个textField和其他控件。
有什么方法可以在本地保存输入。在用户单击“提交”按钮之前,数据将不会被清除。我希望数据仍在那里,甚至重启手机或重启程序。 以XML格式保存?
答案 0 :(得分:6)
您可以选择多种选项,其复杂程度如下:
使用NSKeyedArchiver保存到本地文件系统。这涉及使您的模型类符合NSCoding协议。
使用sqlite和本地数据库。 C api可能非常冗长,但有一个很好的Objective-C包装器叫FMDB。
使用CoreData。这涉及创建本地数据模型(对象模式),然后指示CoreData将对象持久化到其存储。存储通常是一个sqlite数据库(包括ACID合规性 - 例如事务,原子性等),但CoreData也知道如何进行二进制和XML格式。
无论您使用哪种方法,我建议使用Data Access Object(DAO)设计模式,该模式为持久性方法提供协议。示例:
- (Customer*) findCustomByLastName:(NSString*)lastName
- (void) save:(Customer*)customer
。 。以这种方式,它可以从一种非常简单的持久性风格开始,测试你的整体架构如何集成到一个有凝聚力的应用程序,然后交换另一个更健壮的风格。 Here's an example of a file-system DAO using NSKeyedArchiver。
其他方法:
答案 1 :(得分:1)
您可以将数据存储在NSUserDefaults或SQLite数据库中。我建议使用SQLite,但这完全取决于您的需求。有关如何在YouTube / apple dev文档
上执行此操作的大量教程答案 2 :(得分:1)
查看Realm
直接在手机,平板电脑或可穿戴设备内运行的移动数据库。 Realm可让您更快地构建应用程序,构建更快的应用程序, 并制作以前不可能的经历。