繁体   English   中英

在iOS应用上保存数据的最有效方法

[英]Most efficient way to save data on iOS Apps

我正在创建一个包含多个UITableViewControllers的应用程序。 到目前为止,我已经使它们全部连接到我的不同JSONGetStuff.php文件,然后使用JSON编码从数据库中获取数据。 这很好。 大多数表都有包含文本和图像的单元格。 现在,我有四个包含不同数据的tableViews,我想保存数据而不是每次都加载它。 现在,我让该应用访问ViewDidLoad上的JSON.php文件,并将数据存储在NSArray中,然后通过NSDictionary对其进行解析以获取ObjectForKey:@“”; 此数据是来自SQL Server的普通表,例如“名称”,“地址”,“图像名称”等。

我意识到我不会太频繁地更新数据库,很可能每月更新一次或两次,甚至更少。 因此,我决定将信息存储在安装的应用程序中。 并不是每次更改数据库时我都必须发布更新,而是喜欢保存直到更新。

我认为我的应用程序中应该有一个名为“ Version”的整数,即= 1; 发布时。 然后,在启动应用程序时,我要使该应用程序转到www.mywebsite.com/version.php,并检查回显的变量是否与“ Version”相同。 每当我更改数据库时,都可以更改此整数++。 当应用启动并检查版本,并且本地错误时,我希望它下载全部负载,并覆盖存储在iPhone上的当前数据。

我不知道从哪里开始。 我使用JSON是因为直接连接到数据库很不好,但是由于我的数据是数据库数据,我可以创建本地数据库并使用该信息而不是数组吗? 我在某个地方读到.plist可能更适合字符串,而我的整个数据库只是字符串(varchar x)。

我应该在哪里保存初始数据? 如何使用JSON解析我的数据库数据? 时间到了,我该如何覆盖这些数据? 从哪里开始呢? 我应该阅读.plist,NSData,NSCoding还是NSFileManager吗?

尝试考虑将数据持久化在核心数据数据库中。 核心数据是处理数据库的持久框架。 核心数据可以为您处理很多事情(关系,内存等),并且可以很好地与表配合使用(使用NSFetchedResultsController)。

http://developer.apple.com/library/mac/#documentation/cocoa/Conceptual/CoreData/cdProgrammingGuide.html

当然,这完全取决于数据量,但是您可以开始查看链接的文档。

如果数据很简单,则可以使用NSCacheNSUserDefaults快速有效地存储数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM