如何使用SDWebImage将图像从JSON加载到UIImageView?

我正在尝试使用SDWebImage在UIImageView中显示来自JSONurl的图像,类似于Tinder。 我遇到的每个教程都只处理下载单个图像URL(@“suchandsuch.png”),或者在桌面内显示图像(我不想这样做)。

不知道我在做什么错。

我的示例代码:ViewController.m

-(void)viewDidLoad{ [super viewDidLoad]; AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; [manager GET:@"http://www.suchandsuch.com/api/sites" parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) { self.posts = (NSDictionary *) responseObject; self.post = self.posts[@"sites"]; NSLog(@"JSON: %@", self.post); } failure:^(AFHTTPRequestOperation *operation, NSError *error) { NSLog(@"Error: %@", error); }]; NSData *data = [[NSData alloc] initWithContentsOfURL: [NSURL URLWithString:@"http://www.suchandsuch.com/api/sites"]]; NSError *error; NSDictionary *jsonDict = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error]; NSString *logoString = [jsonDict objectForKey:@"logoURL"]; NSURL *logoURL = [NSURL URLWithString:logoString]; [self.myImage setImageWithURL:logoURL]; } 

我认为你已经将SDWebImage文件添加到你的项目中了,而且你知道如何parsingJSON,这里就是你需要做的。 将此行添加到视图控制器类的顶部 –

 #import "UIImageView+Webcache.h 

在parsing并检索到包含所需的imageUrl的对象之后,例如从JSON中提取的字典(dict)

  NSString *jsonImageUrlString = [dict objectForKey:@"imageUrl"]; NSURL *imageURL = [NSURL URLWithString:jsonImageUrlString]; [[SDImageCache sharedImageCache] removeImageForKey:imageURL fromDisk:YES]; [self.profileImageView setImageWithURL:imageURL]; 

我希望这有帮助

编辑 您应该已经在您的项目中的SDWebImage文件

在这里输入图像说明

假设你有一个具有imageUrl字典的JSON结构。 您需要通过这段代码将JSON转换为NSObject。

 NSError *error; NSDictionary*jsonDictionary = [NSJSONSerialization JSONObjectWithData:jsonData options:kNilOptions error:&error]; NSString *imageUrl = [jsonDictionary objectForKey:@"imageURLKEY"]; [yourImageView sd_setImageWithURL:[NSURL URLWithString: imageUrl] placeholderImage:[UIImage imageNamed:@"anyTempImage.png"]];