从项目特定路径

时间:2015-11-08 06:16:20

标签: swift nsurl nsfilemanager nsbundle

我需要通过从项目目录(又名mainBundle)开始的路径检索我的Xcode项目中包含的资源的URL

所以如果我的指定路径是./snd/archer/acknowledge1.wav,我需要从中创建一个URL。

我知道我可以将NSURL(fileURLWithPath:)用于系统目录,但我不知道如何直接从捆绑中执行此操作。

3 个答案:

答案 0 :(得分:29)

截至Swift 3,答案是:

Bundle.main.url(forResource: "acknowledge1", withExtension: "wav", subdirectory: "snd/archer")

答案 1 :(得分:17)

您将使用其中一个捆绑资源网址方法

[[NSBundle mainBundle] URLForResource:@"acknowledge1"
                        withExtension:@"wav"
                         subdirectory:@"snd/archer"];

NSBundle.mainBundle().URLForResource("acknowledge1", withExtension:"wav" subdirectory:"snd/archer")

在最新的Swift中:

Bundle.main.url(forResource: "acknowledge1", withExtension:"wav")

答案 2 :(得分:1)

在Swift 2.3中,您必须使用此解包:

if let resourceUrl = NSBundle.mainBundle().URLForResource("acknowledge1", withExtension: "wav", subdirectory:"snd/archer") {
        if NSFileManager.defaultManager().fileExistsAtPath(resourceUrl.path!) {
            print("file found")
            //do stuff
        }
    }