Swift数组索引超出范围和Nil值

时间:2018-11-16 21:47:11

标签: ios arrays swift null indexoutofrangeexception

我有一个JSON获取请求,其中检索四个用户的信息,然后加载四个视图及其图片,名称等。

我还有一个功能,用户可以点击这些视图并查看有关它们的更多信息。

但是,我需要确保包含四个用户的数组(randomFour)包含他们选择的视图的实际信息,并且不为nil。

我试图通过对数组的索引进行计数来实现此目的,但是由于某些原因,它并不能阻止它通过然后由于值nil而崩溃。

@objc func loadWriteView(sender: UITapGestureRecognizer) {
    if sender.view == a_view || sender.view == a_pic && randomFour.count >= 1 {
        setupCardWrite(user: randomFour[0])
    } else if sender.view == b_view || sender.view == b_pic && randomFour.count >= 2 {
        setupCardWrite(user: randomFour[1])
    } else if sender.view == c_view || sender.view == c_pic && randomFour.count >= 3 {
        setupCardWrite(user: randomFour[2])
    } else if sender.view == d_view || sender.view == d_pic && randomFour.count >= 4 {
        setupCardWrite(user: randomFour[3])
    }
}

如您所见,我检查计数是否大于某个值,但是有时我仍然会收到此错误:

Thread 1: Fatal error: Index out of range

当检查时,我看到:

randomFour = ([Compliments.User]) 0 values  

如何确保用户已正确加载?

1 个答案:

答案 0 :(得分:0)

请尝试在前两个条件附近使用括号

if (sender.view == a_view || sender.view == a_pic) && randomFour.count >= 1