在Xcode / Swift中将UILabel转换为Int值

时间:2018-03-19 13:07:50

标签: ios swift xcode uilabel

我正在Xcode中创建一个健身应用程序,其中不同的活动值得不同点,并且用户在主页上有总分。 我正在尝试将UILabel(我已经为每个挑战指定了点数)转换为整数,这样我就可以在选择该挑战时计算用户总积分。

我相信我需要使用Swift并将UILabel连接到一个插座并给出计算按钮一个动作,但是我无法弄清楚如何从UILabel获取一个Int值来进行计算。

任何人都可以帮忙解决这个问题,或者你能想出更好的方法。

提前致谢

我有这个,没有错误,但按下按钮时没有任何反应。我的目标是将新点添加到当前点,但试图让这部分首先工作。

  

@IBAction func Calculate(_ sender:Any){

    if let NewPointsText = NewPoints.text,
        let NewPointsValue = Int(NewPointsText){
        print(NewPointsValue)
    } else{
        print("Not Worked")
    }

    if let CurrentPointsText = CurrentPoints.text,
        let CurrentPointsValue = Int(CurrentPointsText){
        print(CurrentPointsValue)
    }else{
        print("Current Points Not Worked")
    }

}

}

2 个答案:

答案 0 :(得分:0)

您需要先从text获取UILabel,然后使用Int将其转换为initializer值。

    if let text = self.label.text, let value = Int(text)
    {
        //Write your code here
    }

如果initializer无法转换为nil值,则string会返回Int,否则会返回non-nil Int value,即

  1. Int("hello")返回nil
  2. Int("10")返回10

答案 1 :(得分:0)

使用if let,您可以轻松尝试提取值:

@IBOutlet var label: UILabel!

@IBAction func calculateStuff(sender: UIButton) {
    // do stuff

    if let labelText = label.text,
        let intValue = Int(labelText) {

        // use intValue as you want
    } else {
        // if label did not contain an integer, you can react here
    }
}