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 応答は次のようになります。