如何检查图像是否为零然后加载默认图像Xcode

时间:2015-03-12 19:21:44

标签: ios objective-c xcode image

我正在从网址加载图片 - 将儿子添加到字典中,然后使用图像创建数组,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 ]];
    */          
}

感谢任何帮助

1 个答案:

答案 0 :(得分:3)

您正在与其NSLog输出进行比较,这有点奇怪..

替换:

if ([picImage isEqual:@"0 objects"])

使用:

if ([picImage count] == 0)