微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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]];

原文地址:https://www.jb51.cc/c/119429.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐