可可触摸框架资产在App Project中不可见

Mr.*_*.Me 18 cocoa-touch ios xcode6

我从早上开始尝试创建一个可可触摸farmework,将我自己的小部件放在其中,并允许我正在使用的任何应用程序将来使用它.

我已设法构建项目并导出.framework文件,但所有资产现在都没有显示.我的所有图片都在资产目录中.

它们似乎是导出的,因为.framework文件里面有(assets.car)文件.

我正在使用它来访问它们

UIImage* icon = [UIImage imageNamed:@"iconName"];
Run Code Online (Sandbox Code Playgroud)

但它总是返回null,任何想法?

Evg*_*nii 20

您可以在创建图像时提供框架包.在Swift 2中:

class func getMyImage() -> UIImage? {
    let bundle = NSBundle(forClass: self)
    return UIImage(named: "YourImageName", inBundle: bundle, compatibleWithTraitCollection: nil)
}
Run Code Online (Sandbox Code Playgroud)

斯威夫特3:

class func getMyImage() -> UIImage? {
    let bundle = Bundle(for: type(of: self))
    return UIImage(named: "YourImageName", in: bundle, compatibleWith: nil)
}
Run Code Online (Sandbox Code Playgroud)

这是一个演示项目,包含一个带有图像的框架和一个使用它的应用程序.

https://github.com/marketplacer/AssetFrameworkDemo

  • 如何在情节提要或xib中不上课? (3认同)

Riv*_*era -1

您可以尝试通过以下方式访问您的图像:

UIImage* icon = [UIImage imageNamed:@"MyLib.framework/iconName"];
Run Code Online (Sandbox Code Playgroud)

检查这个有关创建包含资源的框架的问题。

另外,即使您的代码是闭源的,我也建议使用 CocoaPods。