如何在项目

时间:2016-03-23 19:38:12

标签: ios swift

我非常渴望在我的项目中寻找文件..

我有一个文件:Database.sqlite3在支持带有Interface.plist等的文件中。

此代码找到plist但没有数据库:

    let bundle = NSBundle.mainBundle()
    let envsPListPath = bundle.pathForResource("Interface", ofType:"plist")
    let environments = NSDictionary(contentsOfFile: envsPListPath!)

我怎样才能获得数据库文件的路径?我确实尝试了很多解决方案,但对于移动中的文档而不是项目目录。

1 个答案:

答案 0 :(得分:0)

试试这个:

   let strDbPath = NSBundle.mainBundle().pathForResource("Database", ofType:"sqlite")

通过这个,你可以根据你的要求获得你可以访问的路径后你的sqlite路径的完整路径 通常被复制到文档目录中以进行进一步的操作

也可以通过这种方式访问​​

class func copyFile(fileName: NSString) {
        let dbPath: String = getPath(fileName as String)
        let fileManager = NSFileManager.defaultManager()
        if !fileManager.fileExistsAtPath(dbPath) {

            let documentsURL = NSBundle.mainBundle().resourceURL
            let fromPath = documentsURL!.URLByAppendingPathComponent(fileName as String)

            var error : NSError?
            do {
                try fileManager.copyItemAtPath(fromPath.path!, toPath: dbPath)
            } catch let error1 as NSError {
                error = error1
            }
            let alert: UIAlertView = UIAlertView()
            if (error != nil) {
                alert.title = "Error Occured"
                alert.message = error?.localizedDescription
            } else {
                alert.title = "Successfully Copy"
                alert.message = "Your database copy successfully"
            }
            alert.delegate = nil
            alert.addButtonWithTitle("Ok")
            alert.show()
        }
    }

您可以在函数中传递文件名(Database.sqlite3)
有关如何在swift中使用sqlite的完整演示,请参阅此站点:Sqlite demo swift

在您的代码中,如果您尝试使用示例代码获取db文件,那么当您尝试从sqlite3文件中检索NSDictionary时,它会给您错误

plist文件存储在NSDictionary结构中,以便代码正确执行