如何加载存储在静态库中的图像

zac*_*cox 4 iphone image static-libraries

在我的iPhone应用程序中,我正在链接一个包含目标c文件和图像的静态库.是否可以从静态库加载图像?我试过了

[UIImage imageNamed:[[NSBundle mainBundle] pathForResource:@"imageName" ofType:@"png"]];
Run Code Online (Sandbox Code Playgroud)

但显然图像不在主包中,它位于静态库中,而NSBundle类似乎只提供对主包的访问以及与已知路径的捆绑.有没有办法从iPhone上的静态库加载图像?

rpe*_*ich 12

最简单的方法是将图像存储在内联字符数组中:

const char imageData[] = { 0x00, 0x01, 0xFF, ... };
Run Code Online (Sandbox Code Playgroud)

以后当你需要它时:

UIImage *image = [UIImage imageWithData:[NSData dataWithBytesNoCopy:imageData length:sizeof(imageData) freeWhenDone:NO]];
Run Code Online (Sandbox Code Playgroud)

您必须手动将图像的二进制数据(保​​存为PNG或JPEG后)转换为字符数组(或编写脚本以执行此操作)