TableView崩溃如果是空数组,如何修复?

时间:2013-05-25 19:04:07

标签: uitableview nsarray

我正在使用RestKit从Web服务API提取数据,当API响应带有空数组“Image”时,UITableView崩溃

我想知道“if声明”是否最能解决问题?

cellForRowAtIndexPath,在有图像数组时效果很好:

Images *imageLocal = [apiResponseLocal.images objectAtIndex:0];
NSString *imageURL = [NSString stringWithFormat:@"%@", imageLocal.url];

我最好的猜测不适用于“if语句”

if ([imageURL isEqualToString:@""])
    {
    [cell.imageView setImageWithURL:[NSURL URLWithString:@"http://staticimage.com/to/use/when/no/image/from/api"] placeholderImage:[UIImage imageNamed:@"placeholder.png"]];
    }
    else
    {
    [cell.imageView setImageWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@", imageURL]] placeholderImage:[UIImage imageNamed:@"placeholder"]];
    }

我不确定我是否正在尝试使用“if语句”进行解决,或者实际的声明可能是什么。任何帮助将不胜感激!

修改: 错误&当NSArray中没有图像并且我尝试向特定单元格滚动TableView时,我得到崩溃"_NSArrayM objectAtIndex:]: index 0 beyond bounds for empty array"

1 个答案:

答案 0 :(得分:3)

在访问任何索引之前,您需要检查数组计数并处理它是否小于1。 这是进行默认无图像图像URL逻辑的地方。