【问题标题】:Most efficient way to save data on iOS Apps在 iOS 应用上保存数据的最有效方式
【发布时间】:2012-08-16 15:35:39
【问题描述】:

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

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

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

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

我在哪里保存初始数据?如何使用 JSON 解析我的数据库数据?时机成熟时如何覆盖该数据?我从哪里开始?我应该阅读 .plist、NSData、NSCoding 还是 NSFileManager?

【问题讨论】:

标签: objective-c ios database cocoa-touch data-storage


【解决方案1】:

尝试考虑将数据持久保存在核心数据数据库中。核心数据是处理数据库的持久框架。核心数据为您处理了很多东西(关系、内存等),并且与表配合得很好(使用 NSFetchedResultsController)。

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

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

【讨论】:

    【解决方案2】:

    如果数据比较简单,可以使用NSCacheNSUserDefaults快速高效的存储数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-01
      • 2012-09-02
      • 1970-01-01
      • 2015-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-20
      相关资源
      最近更新 更多