在解开错误时尝试修复典型的找到的nil

时间:2015-11-18 07:20:15

标签: swift uitableview uibutton

目前我的单元格中有一个用作图像的按钮,为什么是按钮而不是图像,似乎使用按钮可以使图像更清晰,但这既不是在这里也不是在那里。

if realDistance > 8000
{
    self.tourist.text = "Tourist"

    //crashing line
    self.touristBackground.imageView?.image = UIImage(named: "tours-1")

}

这是我当前的代码,注释行是崩溃的代码。我不确定为什么会崩溃而不是上面的那一行。

确切错误是致命错误:

  

在解包可选值时意外发现nil

我想我可以试试if if但这似乎不起作用。然而,我可能做错了。

EDIT。它也发生在这里

if lbuttonHidden == true
{
    self.lls.text = String(self.lls.text!.toInt()! - 1)

    //crashing line
    if  self.lls.text ==  "\(0)"
    {
        self.trophy.image = UIImage(named: "STAR2")
    }
}

2 个答案:

答案 0 :(得分:1)

试试这个......

if let imageView = self.touristBackground.imageView {
imageView.image = UIImage(named: "tours-1")
}
else
{
   print("Image view is nil!")
}

答案 1 :(得分:0)

鉴于@Anni S解决方案不起作用(可选绑定),作为一种测试方式,替换

self.touristBackground.imageView?.image = UIImage(named: "tours-1")

self.touristBackground.imageView?.image = UIImage()

如果您的代码没有崩溃,那么错误就在于:(a)图像不存在该名称或由于某种原因无法使用和(b)在您的类实现中,“图像”是隐式的展开(无法在没有崩溃的情况下处理nil。)