gpt4 book ai didi

ios - 如何在没有命令行的情况下以编程方式转储 SQLite

转载 作者:可可西里 更新时间:2023-11-01 02:17:32 26 4
gpt4 key购买 nike

在我的应用程序中,我想识别数据库何时损坏并自动修复它。具体来说,当应用程序首次打开时,我运行一个 ANALYZE 命令,如果它以状态 11 返回(数据库磁盘镜像格式错误),那么我想要一种恢复数据的方法。

我找到的所有示例都使用终端进行转储,然后导入后续的 SQL 命令文件。

由于命令行在 iOS 上不可用,我如何从我自己的代码中转储数据库?

谢谢

最佳答案

我认为您可以轻松地复制并使用另一个名称(扩展时间戳)保存数据库。您必须弄清楚它何时损坏(它不应该损坏取决于您对损坏的含义)并更换它。

NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];

NSString *sqlpath = [documentsDirectory stringByAppendingPathComponent:@"Your-sqlitefile"];
NSString *sqldump = //append timestamp

[fileManager copyItemAtPath:sqlpath toPath:sqldump error:&error];

编辑:

请引用以下答案。我自己没有使用过,但希望它能有所帮助。 https://stackoverflow.com/a/27453637/1881472

关于ios - 如何在没有命令行的情况下以编程方式转储 SQLite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35523397/

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