【问题标题】:Trying to fix the typical found nil while unwrapping error尝试在展开错误时修复典型的发现 nil
【发布时间】:2015-11-18 07:20:15
【问题描述】:

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

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

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

}

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

确切的错误是致命错误:

在展开可选值时意外发现 nil

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

编辑。它也发生在这里

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")
    }
}

【问题讨论】:

  • 那么哪位是 nil?
  • @Anni S 的回答应该可以解决问题。不过,我很想知道“touristBackground”是如何在您的课程中声明的。

标签: swift uitableview uibutton


【解决方案1】:

试试这个...

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

【讨论】:

  • 这正是我尝试过的,但它仍然崩溃并出现同样的错误。
  • 在您的问题中添加类实现和崩溃日志错误。
【解决方案2】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-07
    • 1970-01-01
    • 1970-01-01
    • 2018-11-07
    • 2016-02-20
    相关资源
    最近更新 更多