致命错误:在Swift 2中展开Optional值时意外发现nil

时间:2015-09-23 21:48:28

标签: swift2

我的应用程序在模拟器上工作正常,但在iPhone设备上运行此消息时崩溃了。为什么以及如何解决它? 如何找到应用程序崩溃的代码行?

func playButton(playButton: UIButton!) {

    var image = UIImage()

    if activePlayer == 1 { image = UIImage(named: "x.png")! }
        else { image = UIImage(named: "o.png")! }

    playButton.setImage(image, forState: .Normal)

}

3 个答案:

答案 0 :(得分:0)

在您显示的代码中,可能生成此错误的部分可能是强制解包的UIImage。像这样修改你的代码来找出:

Object

答案 1 :(得分:0)

IOS设备区分大小写,而模拟器不是。因此,我将图像名称替换为确切的文件名(" X.png"和" O.png"而不是" x.png"和&#34 ; o.png&#34)。现在,UIImage(名称:" X.png")不是零,应用程序正常。

答案 2 :(得分:-1)

在这里,我们将使用如果让并查看下面的

func playButton(playButton: UIButton!) {

var image = UIImage()

if let player =  activePlayer {
  if player == 1 {
     image = UIImage(named: "x.png")! }

} else {image = UIImage(名字:“o.png”)! }

playButton.setImage(image, forState: .Normal)

}

(或)如果您使用的是Swift 2.0和Xcode 7, guard 也是不错的选择。