【问题标题】:iOS, CoreData, SQLite, File losing its dataiOS、CoreData、SQLite、文件丢失数据
【发布时间】:2014-03-20 13:55:31
【问题描述】:

我有一个应用程序,它通过从 json 文件导入到 sqlitedb 来生成一些静态数据,当运行应用程序时,DB 文件中有数据并正确加载,我通常会去构建文件夹“通常在

  /Library/Application Support/iPhone Simulator/7.0.3-64/Applications/

并检查 sqlite 文件并验证它是否有数据。 现在我把同一个文件夹复制粘贴到桌面,用同一个sqlite浏览器打开,数据就没了??为什么我不知道!! 我注意到每个 sqlite 文件都会生成一个 -shm 和 -wal 文件。

为什么会这样?

好的,所以我尝试了更多调查,我有两种情况:

1:我在生成 SQLite 文件后立即设置了一个断点,然后转到 build 文件夹,在 build 文件夹中,数据库中有数据,如果我将该文件复制到桌面,则数据库会丢失其数据.

2:我不放断点,让应用程序正常完成(优雅地)然后转到构建文件夹,db文件有数据,当我将它复制并粘贴到桌面时它仍然保留数据。

所以我假设在 xcode 退出(或应用程序正常关闭)时会发生一些事情,而我在设置断点时会错过!

【问题讨论】:

    标签: ios sqlite core-data


    【解决方案1】:

    从 iOS 7 开始,sqlite 数据库默认在 Journaling 模式下使用 - 这意味着对数据库的所有更改都写入“更新文件”,而不是直接写入数据库。您可以将行为改回“旧”方式 - 在这里查看完整说明 :

    Core Data and iOS 7: Different behavior of persistent store

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-01
      • 1970-01-01
      • 2014-04-18
      • 1970-01-01
      相关资源
      最近更新 更多