2015-11-08 15 views
9

Ich brauche die URL einer Ressource in meinem Xcode-Projekt über einen Pfad enthalten abzurufen, die in der Projektverzeichnis (aka Main)Get Ressourcen-URL von projektspezifischen Pfad

Also, wenn meine angegebene Pfad wenn ./snd beginnt /archer/acknowledge1.wav, ich muss daraus eine URL erstellen.

Ich weiß, ich kann NSURL(fileURLWithPath:) für Systemverzeichnisse verwenden, aber ich weiß nicht, wie dies direkt aus dem Bündel zu tun.

Antwort

11

Sie würden Sie eines der Bündel resourse URL Methoden

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

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

In neuesten Swift:

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

Ab Swift 3, lautet die Antwort:

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

Bitte beheben Sie Ihre Antwort. Benötigt Komma vor 'Unterverzeichnis'. Das ist eine großartige Antwort für Swift 4 (& vielleicht Swift 3) –

0

In Swift 2.3 y Sie müssen diese Unwrapping verwenden:

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