我按照教程做了一切正确的事。当我尝试设置标签文本时,我可以在控制台中打印出年龄,我得到一个零错误。
class ViewController: UIViewController {
@IBOutlet var inputField: UITextField!
@IBOutlet var outputLbl: UILabel!
@IBAction func enterBtn(sender: AnyObject) {
if(inputField != nil){
var age = inputField.text.toInt()
println(age)
var catYears = age! * 7
println(catYears)
outputLbl.text = "Your cat is \(catYears) old"
}
else {
outputLbl.text = "Please enter a age"
}
}
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
我阅读了文档,我正确地连接了字符串。但就像我说的那样,当我接受以下声明时:
outputLbl.text = "Your cat is \(catYears) old"
程序运行正常。
答案 0 :(得分:2)
我建议重构一下以检查输入的文本是否能够转换为int。如果故事板正确加载,您不应该检查textField != nil
以后是否为零。
考虑这一变化:
@IBAction func enterBtn(sender: UIButton) {
if let age = inputField.text.toInt() {
println(age)
var catYears = age * 7
println(catYears)
outputLbl.text = "Your cat is \(catYears) old"
} else {
outputLbl.text = "Please enter a valid age"
}
}
答案 1 :(得分:0)
不确定为什么这会产生影响,但我删除了标签并重新创建了它并且有效。