gpt4 book ai didi

ios - 在解包可选时发现 nil

转载 作者:行者123 更新时间:2023-11-28 11:13:23 25 4
gpt4 key购买 nike

我正在尝试创建一个简单的应用程序,它包含一个导航 Controller 和由一个 UIViewController 类控制的 2 个屏幕。该应用程序将允许用户在文本字段中输入 0 到 10 之间的数字,当用户按下按钮时,他们将被带到第二个屏幕,显示他们是否猜中了随机生成的数字。当我在第二个屏幕中访问标签的文本属性时,出现“在展开可选值时意外发现 nil”错误。我不明白为什么,我已经将标签与类(class)联系起来了。有什么建议吗?

这是我的用户界面: enter image description here

这是我的导航 Controller 类代码:

class MyNavController: UINavigationController {
var ranNum:Int = 0

override func viewDidLoad() {
super.viewDidLoad()

ranNum = (Int)(arc4random_uniform(10))

NSLog("random number: \(ranNum)")
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}

}

这是我的通用 View Controller 类:

class GenericViewController: UIViewController {
@IBOutlet weak var inputTextField: UITextField!
@IBOutlet weak var outputLabel: UILabel!

var setThisLabel: String = "You Win!"

@IBAction func guessTheNumber(sender: AnyObject) {
var generatedRanNumber = (parentViewController as! MyNavController).ranNum
var userGuessNumer = inputTextField.text.toInt()

if generatedRanNumber == userGuessNumer {
outputLabel.text = "You Win!"
} else if generatedRanNumber < userGuessNumer {
outputLabel.text = "Think Less..."
} else {
outputLabel.text = "Think Big..."
}
}
override func viewDidLoad() {
super.viewDidLoad()

}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}

}

最佳答案

改变自

var generatedRanNumber = (parentViewController as! MyNavController).ranNum

var generatedRanNumber = (navigationController as! MyNavController).ranNum

还要注意 arc4random_uniform(10) 返回一个 0 到 9 之间的数字。你告诉用户猜一个 0 到 10 之间的数字。

关于ios - 在解包可选时发现 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33588706/

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