迅速避免索引超出范围错误

时间:2018-08-10 11:29:54

标签: ios swift uicollectionview

在我的UICollectionView中,如果没有数据(试图设置一个空单元格),我试图返回1个项目。 这是代码:

Set<Integer> set = IntStream.concat(
            IntStream.range(outer.start, outer.end),
            rangesToBeRemoved.stream()
                    .reduce(
                            IntStream.empty(),
                            (stream, range) -> IntStream.concat(stream, IntStream.range(range.start, range.end)),
                            IntStream::concat)
                    .distinct())
            .boxed()
            .collect(Collectors.toMap(Function.identity(), x -> Boolean.TRUE, (x, y) -> null))
            .keySet();

    var movies = [Movies]()

我遇到致命错误:索引超出范围。我知道,通过这种方式,我试图访问index [1]下的元素,这是不可能的,因为该元素不存在,这就是此错误的原因。

但是在这种情况下如何避免呢?

1 个答案:

答案 0 :(得分:2)

1的空数组返回 numberOfItemsInSection 开始,您需要先检查cellForItemAt中的数组是否为空,然后才能下标它。

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    if movies.isEmpty {
        //return your empty cell
    }
    else {
        //access array element and return cell
    }
}