swift - 尝试连接字符串时出现 nill 错误

标签 swift

我遵循了教程并正确完成了所有操作。就在我尝试设置标签文本时,我可以在控制台中打印出年龄,但出现 nil 错误。

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"

程序运行良好。

最佳答案

我建议重构它以检查输入的文本是否能够转换为 int。您不应该检查 textField != nil 是否正确,因为如果 Storyboard正确加载,它不会为 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"
    }
}

关于swift - 尝试连接字符串时出现 nill 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28704408/

相关文章:

arrays - 如何迭代没有 id 属性的对象列表

swift - call//Twitter 中参数 #1 缺少实参

ios - 在纵向/横向旋转中旋转除 UIImageView 之外的所有内容

ios - 从 Firebase 中删除当前单元格值

closures - 你如何测试函数和闭包的相等性?

swift - AV基金会代表

swift - 延迟显示 UIMapView 直到 map 在 Swift 中完全加载

ios - UITableView 更新数据不流畅

ios - Storyboard View (iphone 4/5/6)影响集合单元格大小的布局(以编程方式设置)

swift - 保存 FIRServerValue.timestamp() - Hashable 协议(protocol)错误