如何在Swift中找到正确的路径

时间:2015-05-12 07:19:41

标签: ios sqlite swift database-connection

我从文档中获取此代码,我找不到文件的路径,我需要将“contacts.db”文件从Supporting Files文件夹复制到设备中不在模拟器中的应用程序以供离线使用

func copyItemAtPath(_ srcPath: String,
         toPath dstPath: String,
          error error: NSErrorPointer) -> Bool

srcPath =您要移动的文件或目录的路径。此参数不得为零。

dstPath =放置srcPath副本的路径。此路径必须包含新位置中的文件或目录的名称。此参数不得为零。

error = On输入,指向错误对象的指针。如果发生错误,则将此指针设置为包含错误信息的实际错误对象。如果您不想要错误信息,可以为此参数指定nil。

非常感谢任何帮助。 :)

1 个答案:

答案 0 :(得分:7)

您只需拖放" contacts.db"进入Project Navigator之后,您可以通过这种方式找到该文件的路径:

let sourcePath = NSBundle.mainBundle().pathForResource("contacts", ofType: "db")

之后,您可以将该文件复制到应用程序的文档文件夹中,为此您需要该文档文件夹路径:

let doumentDirectoryPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true).first as! String
let destinationPath = doumentDirectoryPath.stringByAppendingPathComponent("contacts1.db")

现在您有sourcePathdestinationPath,因此您可以将该文件复制到文档文件夹中:

NSFileManager().copyItemAtPath(sourcePath!, toPath: destinationPath, error: &error)

如果你想检查错误,你可以这样做:

var error : NSError?
    NSFileManager().copyItemAtPath(sourcePath!, toPath: destinationPath, error: &error)
    if let error = error {
        println(error.description)
    }

如果您收到sourcePath nil,请转到Targets-> YouApp-> Build Phases->复制Bundle Resources并在那里添加您的文件。 希望这会有所帮助。