An NSBundle object helps you access the code and resources in a bundle directory on disk. Apple uses bundles to represent apps, frameworks, plug-ins, and many other specific types of content. Bundles organize their contained resources into well-defined subdirectories, and bundle structures vary depending on the platform and the type of the bundle. By using a bundle object, you do not have to know the structure of a bundle to access its resources. The bundle object provides a single interface for locating items, taking into account the bundle structure, user preferences, available localizations, and other relevant factors.
Any executable can use a bundle object to locate resources. You use an NSBundle object whenever you need to locate resources, either inside an app’s bundle or in a known bundle located elsewhere. You do not use a bundle object to locate files in a container directory or in other parts of the file system.
(Swift) NSBundle object
var myMusic = try? AVAudioPlayer(contentsOf: URL(fileURLWithPath: Bundle.main.path(forResource: "myMus", ofType: "mp3")!))