2015-11-08 38 views
9

ho bisogno di recuperare l'URL di una risorsa contenuta nel mio progetto Xcode attraverso un percorso che inizia nella directory del progetto (aka mainBundle)Get URL risorsa dal percorso specifico progetto

Quindi, se il mio percorso specificato se ./snd /archer/acknowledge1.wav, ho bisogno di creare un URL da quello.

So che posso usare NSURL(fileURLWithPath:) per le directory di sistema, ma non so come farlo direttamente dal pacchetto.

risposta

11

Si potrebbe utilizzare uno dei fascio resourse metodi URL

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

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

In ultima Swift:

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

Come di Swift 3, la risposta è:

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

Si prega di correggere la risposta. Richiede la virgola prima della "sottodirectory". Questa è un'ottima risposta per Swift 4 (e forse Swift 3) –

0

In Swift 2.3 y Dovresti usare questa scartoffia:

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