我正在从网址加载图片 - 将儿子添加到字典中,然后使用图像创建数组,UIImageView使用该图像。只要网址包含图像,这样就可以正常工作。我知道我需要检查nil并加载默认图像,如果是这样,但我似乎无法让它正常工作。任何帮助将不胜感激。
NSString *string = _baseUrlString2;
NSURL *url = [NSURL URLWithString:string];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
// 2
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
operation.responseSerializer = [AFJSONResponseSerializer serializer];
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
// 3
NSDictionary *dic = (NSDictionary *)responseObject;
//NSLog(@" name %@", [dic objectForKey:@"name"]);
//NSLog(@" image %@", [dic objectForKey:@"images"]);
//NSLog(@" barcode %@", [dic objectForKey:@"barcode"]);
_data.text = [dic objectForKey:@"barcode"];
_data2.text = [dic objectForKey:@"name"];
这就是问题所在 - 我添加了一个中断,并注意到数组包含0个对象,所以我试图使这个触发器成为默认图像,但事实并非如此。我也试过== nil
NSArray *picImage = [dic objectForKey:@"images"];
if ([picImage isEqual:@"0 objects"]) {
//yourImageURL is not valid
_imageView.image=[UIImage imageNamed:@"placeholder.png"];
}
else{
//yourImageURL is valid
NSString *image = [picImage objectAtIndex:0];
NSURL *url = [NSURL URLWithString: image];
_imageView.image = [UIImage imageWithData:[NSData dataWithContentsOfURL: url ]];
}
这是工作代码,但如果图像丢失则会崩溃
/*
NSArray *picImage = [dic objectForKey:@"images"];
NSString *image = [picImage objectAtIndex:0];
NSURL *url = [NSURL URLWithString: image];
_imageView.image = [UIImage imageWithData:[NSData dataWithContentsOfURL: url ]];
*/
}
感谢任何帮助
答案 0 :(得分:3)
您正在与其NSLog
输出进行比较,这有点奇怪..
替换:
if ([picImage isEqual:@"0 objects"])
使用:
if ([picImage count] == 0)