0

ダウンロード スレッドが URL からの画像のダウンロードに失敗した場合に対処したいのですが、次のコードは私の目的に合わないようです。

dispatch_queue_t DownloadQueue = dispatch_queue_create("Download Pic", NULL);
dispatch_async(DownloadQueue, ^{
    NSData *imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString:detailImageURL]];
    dispatch_async(dispatch_get_main_queue(), ^{
        if ([imageData isKindOfClass:[NSNull class]]) {
            detailImageView.image = [UIImage imageNamed:@"no_image_available.jpg"];

        }
        else{
            UIImage *image = [UIImage imageWithData:imageData];
            detailImageView.image = image;
        }
    });
});
dispatch_release(DownloadQueue);
4

1 に答える 1

0

@Rob、ありがとう、問題を解決する回避策:

dispatch_queue_t DownloadQueue = dispatch_queue_create("Download Pic", NULL);
dispatch_async(DownloadQueue, ^{
    NSData *imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString:detailImageURL]];
    if (imageData == nil) {
        detailImageView.image = [UIImage imageNamed:@"no_image_available.jpg"];

    }else{
        dispatch_async(dispatch_get_main_queue(), ^{
            UIImage *image = [UIImage imageWithData:imageData];
            detailImageView.image = image;
    });
    }
});
dispatch_release(DownloadQueue);

ブロックに入る前に、is nil かasyncどうかをテストします。NSData

于 2013-06-12T18:41:55.930 に答える