iOS开发 本地图片加载失败
答案:3 悬赏:60 手机版
解决时间 2021-04-07 00:30
- 提问者网友:我一贱你就笑
- 2021-04-06 16:38
iOS开发 本地图片加载失败
最佳答案
- 五星知识达人网友:神也偏爱
- 2021-04-06 17:45
这肯定的啊,因为用[UIImage imageNamed:question.icon]是直接从当前的项目中读取文件,可以实现;
而NSString *path = [[NSBundle mainBundle] pathForResource:question.icon];是从沙盒路径中读取文件,只用question.icon是不够的,应该加上当前的沙盒路径,如果你的沙盒路径中还有一个存放图片的文件夹的话,还要加上这个文件夹的名字,question.icon应该改为:
沙盒路径/文件夹名/question.icon
具体实现是这样的:
//程序包的根目录(沙盒路径)
NSString *resourcePath = [[NSBundle mainBundle] resourcePath];
//完整的图片路径,如果图片是放在文件夹中的话,还要在中间加上文件夹的路径
NSString *imagepath = [resourcePath stringByAppendingPathComponent:@”question.icon“];
//可以打印路径看看是什么情况
NSlog(@“%@”,imagePath);
UIImage *image = [UIImage imageWithContentsOfFile:imagePath];
而NSString *path = [[NSBundle mainBundle] pathForResource:question.icon];是从沙盒路径中读取文件,只用question.icon是不够的,应该加上当前的沙盒路径,如果你的沙盒路径中还有一个存放图片的文件夹的话,还要加上这个文件夹的名字,question.icon应该改为:
沙盒路径/文件夹名/question.icon
具体实现是这样的:
//程序包的根目录(沙盒路径)
NSString *resourcePath = [[NSBundle mainBundle] resourcePath];
//完整的图片路径,如果图片是放在文件夹中的话,还要在中间加上文件夹的路径
NSString *imagepath = [resourcePath stringByAppendingPathComponent:@”question.icon“];
//可以打印路径看看是什么情况
NSlog(@“%@”,imagePath);
UIImage *image = [UIImage imageWithContentsOfFile:imagePath];
全部回答
- 1楼网友:一秋
- 2021-04-06 20:35
1、你没有吧图片加载到你的项目中
2、你在加载图片的时候,图片的名称 出错
3、 UIImage *image = [UIImage imageNamed:@"xxx.png"];
2、你在加载图片的时候,图片的名称 出错
3、 UIImage *image = [UIImage imageNamed:@"xxx.png"];
- 2楼网友:何以畏孤独
- 2021-04-06 19:24
上面写的都有问题,应该是这样UIImage *img = [UIImage imageNamed:@"question.icon"];
另外一种方法NSString *path = [[NSBundle mainBundle] pathForResource:@“question” ofType:@"icon"];
UIImage *img = [UIImage imageWithContentOfFile:path];追问question.icon已经是NSString类型的,是图片名,问题里面我省略了几个语句。
你说的是pathForResource:这个方法不能用了吗? 必须用pathForResource:ofType:?追答可以那样用。最好使用NSLog来看看path是否取到。重点是使用UIImage 的类方法imageWithContentOfFile 这个来得到UIImage对象。追问问题就是断点发现path为nil,那么用imageWithContentOfFile:path就不可能返回一个UIImage,而使用imageNamed:是完全可以取得这张图片的。
但是由于这个UIImageView里面要用到很多image,用imageNamed:耗用的内存达到一个恐怖的程度,所以只能使用imageWithContentOfFile:。追答如果path为nil,说明你调用函数指定的图片名称或路径不正确导致的。如果是本地资源图片,上面的代码是可以成功拿到图片路径的。你自己检查一下,你的图片是不是被包含在一个实际的目录下,而非引用的group文件夹中,如果是那样的话,你在获取时还需要带上图片所在的目录。如
NSString *path = [[NSBundle mainBundle] pathForResource:@“/image/question” ofType:@"icon"];追问
问题是imageNamed:能取到的图片[[NSBundle mainBundle] pathForResource:question.icon]取出失败
question.icon怎么看像图片名了 question是模型 .icon是模型属性
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯