无法从Framework

时间:2015-07-16 15:55:52

标签: ios objective-c frameworks resources bundle

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

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

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

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

但有没有办法在不需要提供所有捆绑框架的情况下实现这一目标。我的意思是为什么框架不在其中包含 Bundles

有人可以告诉我我错过了什么吗? 这个问题一直困扰着我。

2 个答案:

答案 0 :(得分:0)

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

将捆绑路径设置为框架路径

我希望它会对你有所帮助!

答案 1 :(得分:0)

使用

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

而不是

[UIImage imageNamed:@"IMAGE_NAME_HERE"];