1

UICollectionViewコレクションセルに画像をロードする必要があります。

ここにコードがあります

dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul);
    dispatch_async(queue, ^{
        NSURL *imageURL = [NSURL URLWithString:post.cover_img_url];
        NSData *data = [NSData dataWithContentsOfURL:imageURL];
        UIImage *image = [UIImage imageWithData:data];
        dispatch_async(dispatch_get_main_queue(), ^{
            [cell.cover_img setImage:image];
        });
    });


post.cover_img_url = the_url_for_the_image;
cell.cover_img = the_UIImageView_object;

Web からではなく画像を設定すると、完全に機能します。

しかし、ウェブから試してみると、UIImageView画像ではなく空白です。

誰にもアイデアはありますか?

4

1 に答える 1

2

コードは機能しているように見えますが、テストする必要があることがいくつかあります。imageURL最初に、それが非 nil であり、それが指していると思われる場所を正確に指していることを確認する必要があります。必要に応じて、ログの結果をコピーしてデスクトップ ブラウザーに貼り付けます。

NSLog(@"%@",imageURL);

次に、画像の取得に失敗した場合に、これを検出できる必要があります。引き続き dataWithContentsOfURL: ルートを使用する場合は、少なくとも以下を使用してエラーを確認することをお勧めします。

NSError *error = NULL;
NSData *data = [NSData dataWithContentsOfURL:imageURL options:NSDataReadingMappedIfSafe error:&error];

if (error) {
    // ...
}
于 2013-08-30T14:25:56.093 に答える