Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/108.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-删除应用程序时未删除应用程序文件_Ios_Database_Sqlite - Fatal编程技术网

iOS-删除应用程序时未删除应用程序文件

iOS-删除应用程序时未删除应用程序文件,ios,database,sqlite,Ios,Database,Sqlite,我们遇到了奇怪的行为 从试飞中安装应用程序 应用程序在NSDocumentDirectory中创建本地sqlite数据库 用户删除应用程序 用户从试飞重新安装应用程序(更新版本) 应用程序在应用程序中看到旧数据库 这种情况已经发生过好几次了。我的理解是,应用程序一旦被删除,就应该删除所有与之相关的内容。但这种情况时有发生 以前有人见过这个问题吗?我想这是由iCloud备份和恢复功能引起的。如果未明确设置“排除备份”键,iOS将自动备份文档目录中的文件。在您的情况下,以前的数据库已在iCloud中

我们遇到了奇怪的行为

  • 从试飞中安装应用程序
  • 应用程序在NSDocumentDirectory中创建本地sqlite数据库
  • 用户删除应用程序
  • 用户从试飞重新安装应用程序(更新版本)
  • 应用程序在应用程序中看到旧数据库
  • 这种情况已经发生过好几次了。我的理解是,应用程序一旦被删除,就应该删除所有与之相关的内容。但这种情况时有发生


    以前有人见过这个问题吗?

    我想这是由iCloud备份和恢复功能引起的。如果未明确设置“排除备份”键,iOS将自动备份文档目录中的文件。在您的情况下,以前的数据库已在iCloud中备份,当您重新安装应用程序时,iCloud恢复了数据库文件。这就是您看到旧数据的原因。如果不需要备份应用程序的数据库文件,请使用以下代码:

    Swift 4: 旧版本代码
    参考资料:

    非常感谢。我会的。
    do
    {
        var resourceValues = URLResourceValues()
        resourceValues.isExcludedFromBackup = true
        try databaseURL.setResourceValues(resourceValues)
    }
    catch
    {
       print(error.localizedDescription)
    }
    
    do
    {
       // Database URL
       try databaseURL.setResourceValue(true, forKey:NSURLIsExcludedFromBackupKey)
    }
    catch let error as NSError
    {
       print("Error excluding \(URL.lastPathComponent) from backup \(error)");
    }