gpt4 book ai didi

ios - 解包可选值“”时,prepareForSegue “” 意外发现 nil 错误

转载 作者:行者123 更新时间:2023-11-29 01:08:04 24 4
gpt4 key购买 nike

我正在尝试使用prepareForSegue函数将数据从一个 View Controller 传递到下一个 View Controller 。当我运行该应用程序并单击该按钮时,我的应用程序崩溃并收到此消息“ fatal error :在展开可选值时意外发现 nil”。我已经尝试了prepareForSegue函数的许多变体来传递数据,但它永远不会出现在下一个 View Controller 上。

这是我的代码。第一个 View Controller :

class DiceViewController: UIViewController {

@IBAction func pressed(sender: AnyObject) {

print("Button pressed")
performSegueWithIdentifier("fromDice", sender: self)
}

override func viewDidLoad() {
super.viewDidLoad()



}

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if let hvc = segue.destinationViewController as? GameViewController {
if let identifier = segue.identifier {
switch identifier {
case "fromDice": hvc.moveBy(2)
default: break
}
}
}
}

第二个 View Controller :

class GameViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()

func moveBy(moveBy: Int) {

print("move by \(moveBy)")
var index = moveBy - 1
activePlayer.center = levelButtons[index].center

}

}

控制台输出:

按下按钮

移动 2

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

最佳答案

您可以通过使用 if let 语句安全地展开 levelButtons[index].center 来防止崩溃的发生。

if let centreA = levelButtons[index].center{
activePlayer.center = centreA
}

您需要调试为什么会得到 nil。希望对你有帮助

关于ios - 解包可选值“”时,prepareForSegue “” 意外发现 nil 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36109131/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com