xcode 6.2每次运行应用程序时都会创建一个新的模拟器路径



我用swiftDatasqlite数据库上存储信息,直到今天它都能正常工作,突然它创建了数据库的新位置以及模拟器的位置第一次运行时显示

/Users/div/Library/Developer/CoreSimulator/Devices/606D7F8E-2402-4782-ADEE-12725EDB203A/data/Containers/Data/Application/2DB733AF-2544-4256-B1E5-5E8725E51CDF/Documents/DataBase.db

第二次

/Users/div/Library/Developer/CoreSimulator/Devices/606D7F8E-2402-4782-ADEE-12725EDB203A/data/Containers/Data/Application/551991FA-392A-40E9-810E-31CEFCD3069A/Documents/dataBase.db

第三次

/Users/div/Library/Developer/CoreSimulator/Devices/606D7F8E-2402-4782-ADEE-12725EDB203A/data/Containers/Data/Application/03E4BE03-D6E7-47BF-A98D-A129DF09DD28/Documents/DataBase.db

我用了这个代码

  let fileManager = NSFileManager()
        var Sourcepath = NSBundle.mainBundle().resourcePath?.stringByAppendingPathComponent("PhotoKeeper.db");
        let docsPath = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)[0] as String
        let databaseStr = "DataBase.db"
        let dbPath = docsPath.stringByAppendingPathComponent(databaseStr)
        println(dbPath)    
        if(fileManager .fileExistsAtPath(dbPath) == false) {

            var error:NSError?
            fileManager.copyItemAtPath(Sourcepath!, toPath: dbPath, error: &error)
            println(error)
        }

我的问题是每次创建数据库的新实例时,即如果我插入2行并编译并运行应用程序,它将创建具有零行的新数据库

您应该只保存内容的相对路径(文档、数据库…),因为无论何时构建和运行应用程序文件夹,iOS8的XCode(我想)都会更改。

例如,你在Documents中有你的.db文件,所以只需将你的链接保存为"DataBase.db"。然后,当你需要访问这个文件时,获取路径为:

let documentsFolder = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)[0] as String
let dbPath = documentsFolder.stringByAppendingPathComponent("Database.db")

最新更新