从 UILabel 中获取一个 Int Swift

Get an Int out of an UILabel Swift

我遇到了问题,有大量的按钮有一个数字作为它们的标签,所以我想我可以把标签作为一个整数而不是为每个按钮创建一个动作?!

@IBAction func NumberInput(sender: UIButton) {
    var input:Int = sender.titleLabel as Int
}

您应该确保文本存在

var input:Int = (sender.titleLabel.text! as NSString).integerValue

如果您想这样做,可以使用 string.toInt()string 转换为 Int,例如:

if let input = sender.titleLabel?.text?.toInt() {
    // do something with input
} else {
    // The label couldn't be parsed into an int
}

但是,我建议使用 UIView.tag 或子类化 UIButton 并向其添加 Int 属性 来完成此操作,以防您更改显示您的标签。

您不能将 UILabel 转换为 Int。我想你想要这个:

var input : Int? = sender.titleLabel.text?.toInt()

另一种在swift中转换标签的方法:

let num = getIntFromLabel(labelView)

将所有按钮连接到 1 个 IBAction。然后根据您将如何使用它来创建以下变量和 set/get 方法。

注意:"something" 是一个 UILabel。我在下面写的变量应该可以帮助您使用更清晰的语法轻松地进行转换。 "newValue" 附带所有 setter 方法。它基本上考虑了可能用于将 "num" 设置为新值的任何值。

 var num : Int {
     get { 
         return Int(something!)!
     }
     set {
         something.text = Int(newValue)
     }

 }

对于Swift 3,你可以做的是直接将它从字符串输入转换为整数,像这样

Int(input.text!)

然后,如果出于任何原因,如果您希望将其打印出来或 return 再次作为字符串,您可以执行

String(Int(input.text!)!)

感叹号表示可选项