web-dev-qa-db-fra.com

Obtenir l'URL de la ressource à partir du chemin spécifique au projet

J'ai besoin de récupérer l'URL d'une ressource contenue dans mon projet Xcode via un chemin qui commence dans le répertoire du projet (aka mainBundle)

Donc, si mon chemin spécifié est ./snd/archer/acknowledge1.wav, je dois créer une URL à partir de cela. 

Je sais que je peux utiliser NSURL(fileURLWithPath:) pour les répertoires système, mais je ne sais pas comment procéder directement à partir du bundle.

15
mattgabor

Vous utiliseriez l'une des méthodes d'URL de liaison de lot 

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

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

Dans le dernier Swift:

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

A partir de Swift 3, la réponse est:

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

Dans Swift 2.3, vous devriez utiliser cette décompression:

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-