【发布时间】:2015-11-08 07:10:16
【问题描述】:
我正在尝试创建一个简单的应用程序,它由一个导航控制器和两个由单个 UIViewController 类控制的屏幕组成。该应用程序将允许用户在文本字段中输入从 0 到 10 的数字,当用户按下按钮时,他们将被带到第二个屏幕,显示他们是否猜到了随机生成的数字。当我在第二个屏幕中访问标签的文本属性时,出现“在展开可选值时意外发现 nil”错误。我不明白为什么,我已将标签与班级联系起来。有什么建议吗?
这是我的导航控制器类代码:
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.
}
}
这是我的通用视图控制器类:
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.
}
}
【问题讨论】:
-
“在展开可选时发现将”。谁是威尔,你为什么在打开一个可选的包装时找到他? :)(我猜你的意思是“在展开可选时发现 nil。”)
-
哈,我现在看到拼写错误的词了:D。会追的。谢谢! :)