我正在尝试为 pathForResource 文件获取 plist,当文件位于 mainBundle 中时,这很容易,我使用了:
let path = NSBundle.mainBundle().pathForResource("Settings", ofType: "plist")
但是现在我将 settings 文件移动到另一个包中,但我不知道如何获取它。我尝试使用 forClassallBundles 但我是一个快速的新手,并没有设法让它工作。也无法通过网络找到解决方案。似乎所有 NSBundle 用法示例仅适用于 mainBundle

最佳答案

如果你不知道哪个包有你的资源,你可以循环遍历所有资源:

let bundles = NSBundle.allBundles()

var path : String?
var myBundle : NSBundle?

for bundle in bundles {
    if let resourcePath = (bundle as! NSBundle).pathForResource("Settings", ofType: "plist") {
        path = resourcePath
        myBundle = bundle
        break
    }
}

另一方面,如果你有你的包的 pathidentifier 你可以使用:
let bundle = NSBundle(path: "the-bundle-path")

or

let bundle = NSBundle(identifier: "bundle-identifier")

这与您的 Swift 编程知识水平无关,而与 NSBundle 公开的接口(interface)有关。你应该检查 docs 看看他们是否可以帮助你。

关于ios - 从非 mainBundle 的 NSBundle 获取文件路径,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31290219/

10-11 02:21