objective-c – 将图像(或其他资源)添加到Mac或iOS Framework

前端之家收集整理的这篇文章主要介绍了objective-c – 将图像(或其他资源)添加到Mac或iOS Framework前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假设我有一个现有的iOS或Mac框架,我们称之为Test.framework.这个框架已成功编译和链接(为iOS部分提供了i386和armv6 / 7 archs的一个技巧)并且工作得非常好.

现在我想添加一个图像让我们称之为’test.png’.我已将其复制到我的框架的Resources文件夹中,以便我具有以下结构:

ls Test.framework

- Headers -> Versions/Current/Headers
- Resources -> Versions/Current/Resources
- Test -> Versions/Current/Test
- Versions 

ls Test.framework/Resources

- Info.plist
- test.png

然而,当我使用我的框架创建项目时,我无法访问该图像.

我试过了:

[UIImage imageNamed:@"test.png"]
[UIImage imageNamed:@"Test.framework/test.png"]
[UIImage imageNamed:@"Test.framework/Resources/test.png"]

但没有任何结果总能给我一个零的对象.

有任何想法吗 ?

编辑

经过进一步的调查后,似乎我想要实现的目标无法在iOS上完成.原因是最终的应用程序包(.app)不会复制为Mac OS编译的应用程序所在的私有框架.

这在iOS Bundle Structures documentation中进一步详述.

感谢Rob Keniger和xuzhe对他们的赞赏.我会赞扬xuzhe的答案,因为它实际上是我原来问题的最合适的答案(尽管Rob评论让我深入研究了这个问题)

解决方法

“imageNamed:”方法仅适用于App捆绑包中的图像.你应该用
[[UIImage alloc] initWithContentsOfFile:path];

代替.

关于路径,因为我不确定“Test.Framework”是否在你的App包中,我无法给你一个示例代码.但如果它剂量,下面的代码应该工作:

NSString* path = [Nsstring stringWithFormat:@"%@/Test.framework/Resources/test.png",[[NSBundle mainBundle] bundlePath]];

猜你在找的C&C++相关文章