尝试连接字符串时nill错误

时间:2015-02-24 19:22:12

标签: swift

我按照教程做了一切正确的事。当我尝试设置标签文本时,我可以在控制台中打印出年龄,我得到一个零错误。

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"

程序运行正常。

2 个答案:

答案 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)

不确定为什么这会产生影响,但我删除了标签并重新创建了它并且有效。