gpt4 book ai didi

iphone - 如何通过 App Store 更新使用预填充的核心数据数据库仅更新几个表

转载 作者:行者123 更新时间:2023-11-29 13:39:47 27 4
gpt4 key购买 nike

我们现在在应用程序商店中有一个应用程序使用预填充的核心数据数据库。我们想要更新数据库中的所有表,除了 1 个表,它是用户存储他们最喜欢的公交路线或站点的收藏夹表。目前,我们正在让应用程序委托(delegate)使用 SQLite C API 和 NSFileManager 执行以下操作来完成此更新:

  1. 创建一个临时的收藏夹数据库
  2. 将收藏夹从磁盘上的数据库复制到临时数据库
  3. 删除磁盘上的数据库([fileManager removeItemAtPath:storePath error:NULL])
  4. 将新数据库从应用程序包复制到磁盘 ([fileManager copyItemAtPath:databaseBundlePath toPath:storePath error:&copyError])
  5. 将临时数据库中的收藏夹复制到新数据库中。
  6. 删除临时收藏夹数据库。

我想知道是否有另一种方法可以做到这一点,因为有很多人提示我们的应用程序在启动画面期间崩溃,这是数据库复制发生的时间。

我听说过 Core Data Migration,但我对 Core Data Migration 的理解是只有当模型发生变化时才能迁移数据,但在我们的例子中模型没有发生变化。

最佳答案

为什么不让数据库保持原样,只根据需要向其中插入/删除数据,而不是复制预填充的数据库?

或者你也可以反其道而行之:离开原来的数据库,复制一个新名字的预填数据库,将原来数据库中的收藏夹插入到新的数据库中,删除原来的,现在只使用新的.这样,您始终可以确保用户的收藏夹不会发生任何变化。

或者您可以先将收藏夹写入文本文件,然后执行您描述的相同操作。如果发生任何事情(如崩溃),您始终会在保存的文本文件中保留收藏夹。

它也可能适用于核心数据迁移,但到目前为止我避免了......任何结构性数据库更改都是我宁愿避免的事情,我认为......

关于iphone - 如何通过 App Store 更新使用预填充的核心数据数据库仅更新几个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9472604/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com