【发布时间】:2017-10-20 12:37:34
【问题描述】:
我正在开发一个带有一些数据文件的 iOS 框架。要将它们加载到 Dictionary 中,我会这样做:
public func loadPListFromBundle(filename: String, type: String) -> [String : AnyObject]? {
guard
let bundle = Bundle(for: "com.myframework")
let path = bundle.main.path(forResource: filename, ofType: type),
let plistDict = NSDictionary(contentsOfFile: path) as? [String : AnyObject]
else {
print("plist not found")
return nil
}
return plistDict
}
如果我在带有框架的游乐场中使用它,它会按预期工作。
但是如果我使用嵌入在应用程序中的框架,它就不再起作用了,“路径”现在指向应用程序的包,而不是框架。
如何确保框架的捆绑包被访问?
编辑:上面的代码驻留在框架中,而不是在应用程序中。
EDIT2:上面的代码是一个实用函数,不是结构或类的一部分。
【问题讨论】:
-
如果您在自定义框架中,则无法获取主包的路径,不是那种方式。
标签: ios swift frameworks bundle