0

UITableViewスクロールを開始するとクラッシュします。これUITableViewは記事のリストです。各セルには、ニュース API から取得された関連する見出しと画像があります。

プロジェクトアセットに、API からの画像がない場合は、プレースホルダー画像と画像があります。

WebListViewController.m

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

    WebListCell *cell = [tableView dequeueReusableCellWithIdentifier:@"WebListCell"];
    Feed *feedLocal = [headlinesArray objectAtIndex:indexPath.row];

    Images *imageLocal = [feedLocal.images objectAtIndex:0];
    NSString *imageURL = [NSString stringWithFormat:@"%@", imageLocal.url];
    NSLog(@"img url: %@", imageURL);

    __weak UITableViewCell *wcell = cell;
        [cell.imageView setImageWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@", imageURL]]
                       placeholderImage:[UIImage imageNamed:@"background.png"]
                       completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType) {
                         if(image == nil) {
                         //realign your table view cell
                           [wcell.imageView setImage:[UIImage imageNamed:@"placeholder.png"]];
                                       //];
                                  }
                              }];
    return cell;
}

記事に API から戻ってくる画像がない場合、リストを下にスクロールし始めるとクラッシュします。そのUITableViewような場合にアセットの画像を使用したいだけでも。

エラーは * キャッチされない例外 'NSRangeException' が原因でアプリを終了しています。理由: '* -[__NSArrayM objectAtIndex:]: インデックス 0 が空の配列の境界を超えています'

助けてくれてありがとう!必要に応じて任意のコードを投稿します!

編集:

Images *imageLocal = [feedLocal.images objectAtIndex:0];

...クラッシュしている行のように見えます

また、テスト用の API エクスプローラーでの空の画像配列に対する JSON 応答は次のようになります。 ここに画像の説明を入力

4

1 に答える 1