如何将 SQLite 文件从 Documents 目录保存回目标 C 中的主包?

Posted

技术标签:

【中文标题】如何将 SQLite 文件从 Documents 目录保存回目标 C 中的主包?【英文标题】:How to save SQLite file from Documents directory back to main bundle in objective C? 【发布时间】:2015-11-17 09:04:43 【问题描述】:

更新数据库后如何将 sqlite 文件复制回主包?现在我将 sqlite 文件复制到 Documents 目录中,插入新记录而不是从中选择全部,我可以看到数据在那里,旧的和新的。如何更新我复制的主数据库?感谢您的时间和帮助。

【问题讨论】:

【参考方案1】:

实际上,您无法更改应用程序包文件。一旦您更改了应用程序包文件,它就会使应用程序标志无效,并且将不再安装。您必须将应用程序包文件复制到 App Documents 目录并始终使用文档目录中的文件。

https://***.com/a/4764638/5019395

【讨论】:

是的,我修好了。我一直在覆盖数据库,这就是为什么我看不到变化。现在它工作正常。 我刚做了.. 但是之前的答案也对我有帮助,所以我给了大家+1。 :) 哦..酷。谢谢你,马特..会保持联系。【参考方案2】:

不,您不能将 sqlite 文件复制回主包,因为应用包是只读的!

【讨论】:

如何在更改后更新 sqlite 数据库?因为当我关闭应用程序时,数据库与开始时相同。未保存任何更改。 您必须检查是否已将数据库从捆绑包复制到 Documents 目录。如果有,请不要覆盖它。 @mattkoder 如果文档中不存在 sqlite 文件,只需将其复制到文档目录 我觉得自己像个菜鸟...谢谢。我需要这行代码: if (![fileManager fileExistsAtPath:copyDBPath])

以上是关于如何将 SQLite 文件从 Documents 目录保存回目标 C 中的主包?的主要内容,如果未能解决你的问题,请参考以下文章

xcode sqlite3 如何将数据库从捆绑包复制到文档文件夹?

我应该将 sqlite 数据库文件写入 Documents 目录还是 Library/Caches?

如何最好地将一个巨大的.sqlite数据库移动到旧的低内存iOS设备上的新目录中?

无法将文件从包复制到 Documents 目录,为啥 fileExistsAtPath 返回错误?

如何将文件从谷歌计算引擎复制到本地目录

当我使用 iPhone 运行项目时如何在 iOS 中使用 sqlite