现在我有一个嵌入到主项目中的SDK项目,并且我想使用SDK项目中捆绑包中的图像源,这是我的方法:
let bdpath = Bundle.main.path(forResource: "AltynBankResource", ofType: "bundle")
print("bundlePath:\(bdpath)")
let bd = Bundle(path: bdpath ?? "")
print("bundle:\(bd)")
let img = UIImage.init(named: "ic_bg1", in: bd, compatibleWith: nil)
print("img:\(img)")
,它不起作用。直到我将捆绑软件源复制到主项目。
但是我不明白为什么,我不是在主项目中使用图像,而是在SDK文件中使用图像。为什么必须将捆绑软件源复制到主项目才能使用它?
答案 0 :(得分:0)
您面临的问题是您正在将主捆绑包与Bundle.main
配合使用,这将占用您的应用捆绑包。
我假设这段代码在您的SDK中。我通常要做的是在Objective-C中将[NSBundle bundleForClass:[self class]]
与SDK捆绑在一起。
在swift3.x中是:
Bundle(for: type(of: self))
但是我无法为您提供swift的示例,因为我没有在swift中使用这一行代码。
希望这会有所帮助。