iOS上开发人员提供的用户更新列表的方法

时间:2014-01-19 00:58:36

标签: mysql ios list app-store

我即将开始我的第二个iOS应用程序,我需要存储一些我将在应用程序中提供的列表,但我希望用户能够添加到。以下是要点。

  • 一个列表是一个简单的键/值列表。键是用户将看到并选择的字符串,值为浮点数。
  • 一个列表是每个条目四个值,没有键。值是两个整数和两个浮点数。我可以允许用户添加将出现在选择列表中的描述,但我希望按数字对列表进行排序。我想这个列表可能需要一个隐藏的密钥。
  • 我将为每个应用程序列表提供大量条目(每个条目数十或数百个)。
  • 我希望提供包含应用程序更新的更新列表。
  • 我需要允许用户将自己的条目添加到两个列表中。
  • 当应用程序(和开发人员提供的列表)更新时,用户不得丢失其添加内容。

如上所述,我对整个Objective-C& amp; iOS的事情,但我可以找到我的方式在一般意义上的SQL就好了。对此最好的方法是什么?核心数据或MySQL还是其他什么?如何集成交付(通过应用程序商店更新)和本地输入的数据,还是在构建列表时将其保持分离和集成?我还将有一些更持久的设置数据存储,这可能只是少数几个键值对。

性能不需要快速,因为这些选择对于用户来说偶尔会出现。哦,我可以看到通过iCloud同步用户数据可能很有用,但这不是必须的。

1 个答案:

答案 0 :(得分:1)

有很多可能的解决方案。

核心数据通常使用SQL作为“后备存储”,因此本质上是核心数据IS SQL。

我们在应用程序商店中有一个应用程序,它在应用程序包中包含一个“启动”SQL数据库,它是我们的核心数据数据库的数据。在启动时,我们检查文档目录中是否存在Core Data数据库的SQL文件。如果没有,我们将文件从包中复制到文档目录中。然后我们将介绍打开Core Data数据库的代码。

然后,用户可以使用该应用程序修改数据库内容,这些更改将保存到文档目录中的读/写文件中。

这种方法可以解决问题的第一部分。然后,您在向应用发送更新时遇到问题。您将需要某种交易系统,或某种方式来跟踪哪些内容是新的以及哪些内容是预先存在的。我猜你可以发布版本1.0数据库和更新的单独数据库文件的应用程序更新。还将“上次启动的版本”记录保存到用户默认值。如果在启动时检测到这是第一次运行新版本,请运行合并过程,该过程会将记录从捆绑包中的更新数据库复制到文档目录中的现有数据库中。 (您可能需要将更新数据库复制到临时目录中,因为我不确定SQL引擎是否可以处理从包中打开只读数据库文件)