无法从框架内包含的 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 文件,然后图像开始显示。
但是有没有一种方法可以做到这一点,而不需要将所有 Bundle 与 Framework 一起交付。我的意思是为什么 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"];
我创建了一个 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 文件,然后图像开始显示。
但是有没有一种方法可以做到这一点,而不需要将所有 Bundle 与 Framework 一起交付。我的意思是为什么 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"];