【问题标题】:Sqlite file deletes on reset of simulator重置模拟器时删除 Sqlite 文件
【发布时间】:2012-09-07 07:00:57
【问题描述】:

我在我的 IOS 项目中使用 sqlite。我在启动应用程序时将 sqlite 文件从我的主包复制到文档目录。它确实复制了,但是假设如果我重置模拟器,文档目录中的 sqlite 文件也会被删除,因此所做的所有更改都会随之消失。

任何帮助将不胜感激。

【问题讨论】:

  • 这就是重置模拟器的作用。它会删除您的应用程序及其数据。如果您不想丢失数据库,则不应重置模拟器。
  • 所以如果我不想丢失模拟器重置时的数据,我应该将它保存在文档目录以外的某个文件夹中??
  • 您还应该知道文档目录已备份到 iCloud,因此除非这是所需的行为,否则您的 sqlite 文件应该存储在其他地方。
  • 所以在模拟器运行的情况下我应该将它保存在其他地方吗?但是如果在设备中运行,文档目录是存储的地方吗?

标签: ios sqlite ios5 ios-simulator nsfilemanager


【解决方案1】:

首先,您可以阅读here,了解保存持久数据的位置,以及如何防止 iCloud 备份。在您使用模拟器的情况下,您需要将代码添加到包含在“ifdef SIMULATOR”中的程序中(我没有关于要测试的定义的参考资料,但我知道有一个参考资料),并保存一份副本将文件复制到通向您的用户帐户的完全限定路径(即 /Users/xyz/iOS/xzy.data)。当您的应用程序启动时,您首先会像在设备上一样在适当的位置查找文件。然后,如果找不到该文件,仅适用于模拟器,您会查看该硬编码路径中是否有文件,如果有,请将其复制回模拟器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-21
    • 1970-01-01
    • 2022-01-23
    • 2020-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多