使用 AFNetworking3 目标 c 显示来自 json 数据的图像
Posted
技术标签:
【中文标题】使用 AFNetworking3 目标 c 显示来自 json 数据的图像【英文标题】:display an image from json data using AFNetworking3 objective c 【发布时间】:2017-07-02 13:06:18 【问题描述】:我想, 我使用了这段代码,但它崩溃了!
这是我儿子的链接: mkssab.com/api/index
这是我的代码:
NSDictionary *images = data[@"images"];
cell.adPic.image=[图像 valueForKey:@"photo"];
崩溃消息:
由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[__NSArrayI size]: unrecognized selector sent to instance 0x6000001a5cc0”
【问题讨论】:
从错误消息中猜测(并使用您的 JSON 验证)[images valueForKey:@"photo"]
不是 UIImage
对象,它是 NSArray
对象。此外,您可能想要下载 UIImage,但此处并非如此。所以要么通过构造 URL(似乎只是一个图像名称)并调用setImageWithURL:
。
@Larme 你能帮我提供代码示例吗?
【参考方案1】:
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
if (cell == nil)
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:@"cell"];
NSString *urlString = @"https://mkssab.com/uploads/file-1499084006-595a34e63e885.PNG";// example:http://mkssab.com/somePic.jpg
NSURL *url = [NSURL URLWithString:urlString];
NSData *data = [NSData dataWithContentsOfURL:url];
if (data)
UIImage *image = [UIImage imageWithData:data];
cell.imageView.image = image;
但是NSData *data = [NSData dataWithContentsOfURL:url];
会阻塞主线程,也许你可以尝试使用SDWebImage
像这样:
[cell.adPic sd_setImageWithURL:[NSURL URLWithString:@"http://mkssab.com/somePic.jpg"]
【讨论】:
@ibtdiibtdi [图像 valueForKey:@"photo"];网址无效 对不起,我不明白你能解释一下吗? @ibtdiibtdi 检查你的图片网址 @ibtdiibtd 我正在更新我的答案,我确信可以工作,也许你应该将“https://”附加到你的 imageURL以上是关于使用 AFNetworking3 目标 c 显示来自 json 数据的图像的主要内容,如果未能解决你的问题,请参考以下文章
AFNetworking 3.0 setImageWithURLRequest 下载进度