无法从框架内包含的 Bundle 加载图像

Not able to load images from a Bundle included inside a Framework

我创建了一个 iOS Framework(我们称它的内容为 app-1),除了源代码之外,它还包括一个 Storyboard 和一些 Bundles 其中包含一些图片。 我在另一个项目中使用这个 Framework(我们称之为 app-2),并从 app-2 启动 Storyboard。 它在大多数情况下工作正常,但我的问题是使用

加载的图像
[UIImage imageNamed:@"OneOfTheBundles.bundle/someImage.png"];

现在当运行 app-1 时,似乎一切正常,图像显示正确。 但是当 运行 app-2 中的 Framework 时,静态图像很好,但是使用 [UIImage imageNamed:] 加载的那些没有显示。

我找到的一个小解决方案是将包含图像的 Bundles 添加到 app-2 文件,然后图像开始显示。

但是有没有一种方法可以做到这一点,而不需要将所有 BundleFramework 一起交付。我的意思是为什么 Framework 不查看其中包含的 Bundles

有人可以让我知道我错过了什么吗?! 这个问题困扰了我一段时间。

NSBundle *bundle = [NSBundle bundleForClass:[YourFramework class]];
NSString* path = [bundle pathForResource:@"cross.jpg" ofType:nil];

将包路径设置为您的框架路径

希望对您有所帮助!

使用

修复
[UIImage imageNamed:@"IMAGE_NAME_HERE" inBundle:[NSBundle bundleForClass:[self class]] compatibleWithTraitCollection:[UITraitCollection traitCollectionWithDisplayScale:[UIScreen mainScreen].scale]];

而不是

[UIImage imageNamed:@"IMAGE_NAME_HERE"];