【问题标题】:how can I selectively update some SQLite table to preserve user data for an iphone app update?如何有选择地更新一些 SQLite 表以保留 iphone 应用程序更新的用户数据?
【发布时间】:2011-02-27 16:35:43
【问题描述】:

您可以在更新 iphone 应用程序时选择性地更新某些 sqllite 表,以保留用户存储的数据吗?如何?感谢您的帮助!

【问题讨论】:

    标签: iphone cocoa sqlite ios4


    【解决方案1】:

    在最简单的层面上,您需要:

    1. 在应用文档目录下的SQL数据库中存储一些版本号信息。

    2. 当您的应用启动时,您可以将此版本数据与包中的副本进行比较。

    3. 如果版本不同,则需要激活“更新程序”类,其职责是:

      3.1。检查每个表是否存在。

      3.2。如果存在,则将任何现有数据加载到合适的数据结构(最有可能是 NSDictionary)中,剔除表并以“当前”格式创建它,在不存在数据的情况下提供合理的默认值。

    您可以想象,在上述场景中,更新程序类实际上需要知道如何依次创建每个表,这并不理想 - 另一种方法是存储每个版本的 ALTER TABLE 语句列表,然后依次应用它们,直到数据库结构是最新的。

    【讨论】:

    • @jason 这是一个相当痛苦的过程,但我还没有找到更好的方法。
    猜你喜欢
    • 1970-01-01
    • 2012-03-19
    • 2011-10-05
    • 1970-01-01
    • 1970-01-01
    • 2011-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多