我试图为pathForResource
文件获取plist
,当文件在mainBundle中时很容易,我用过:
let path = NSBundle.mainBundle().pathForResource("Settings", ofType: "plist")
但现在我将settings
文件移到另一个包中,我不知道如何获取它。我尝试使用forClass
和allBundles
,但我是一个快速的新手并没有设法让它发挥作用。也无法通过网络找到解决方案。似乎所有NSBundle
用法示例仅适用于mainBundle
答案 0 :(得分:2)
如果你不知道哪个包有你的资源,你可以循环遍历所有这些包:
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
}
}
另一方面,如果您拥有捆绑的path
或identifier
,则可以使用:
let bundle = NSBundle(path: "the-bundle-path")
or
let bundle = NSBundle(identifier: "bundle-identifier")
这与您的Swift编程知识水平无关,而是与接口NSBundle
公开。您应该检查docs,看看他们是否可以帮助您。