Search code examples
swiftnsurlnsfilemanagernsbundle

Get resource URL from project specific path


I need to retrieve the URL of a resource contained in my Xcode project through a path that begins in the project's directory (aka mainBundle)

So if my specified path if ./snd/archer/acknowledge1.wav, I need to create a URL from that.

I know I can use NSURL(fileURLWithPath:) for system directories, but I don't know how to do this directly from the bundle.


Solution

  • You would use one of the bundle resourse URL methods

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

    In latest Swift:

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