Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/112.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 重置模拟器时删除Sqlite文件_Ios_Sqlite_Ios5_Ios Simulator_Nsfilemanager - Fatal编程技术网

Ios 重置模拟器时删除Sqlite文件

Ios 重置模拟器时删除Sqlite文件,ios,sqlite,ios5,ios-simulator,nsfilemanager,Ios,Sqlite,Ios5,Ios Simulator,Nsfilemanager,我在IOS项目中使用sqlite。启动应用程序时,我正在将sqlite文件从主捆绑包复制到documents目录。它确实会复制,但假设我重置模拟器,documents目录中的sqlite文件也会被删除,因此所做的所有更改都会随之消失 任何帮助都将不胜感激。首先,您可以阅读保存持久数据的位置,以及如何防止iCloud备份。对于模拟器,您需要将代码添加到封装在“ifdef模拟器”中的程序中(我手头没有关于测试定义的参考,但我知道有一个),并将文件的副本保存到指向用户帐户(ie/Users/xyz/i

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


任何帮助都将不胜感激。

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

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