web-dev-qa-db-ja.com

プロジェクト固有のパスからリソースURLを取得します

Xcodeプロジェクトに含まれるリソースのURLを、プロジェクトのディレクトリ(別名mainBundle)で始まるパスから取得する必要があります

したがって、。/ snd/archer/acknowledge1.wavの場合に指定したパスの場合、そこからURLを作成する必要があります。

システムディレクトリにNSURL(fileURLWithPath:)を使用できることは知っていますが、バンドルから直接これを行う方法はわかりません。

17
mattgabor

バンドルリソースURLメソッドのいずれかを使用します

[[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")
19
Wain

Swift 3の時点で、答えは:

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

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
        }
    }
1
Async-