为什么我不能将其转换为Int?

时间:2019-10-05 16:48:34

标签: swift

我想将其转换为Int。

class ViewController: UIViewController {
    @IBOutlet weak var numLabel: UILabel!

    @IBAction func numButtons(_ sender: UIButton) {
        var firstNumber: String
        var secondNumber: String
        var operandNumber: String
        firstNumber = sender.currentTitle!
        secondNumber = sender.currentTitle!
        numLabel.text = firstNumber
        numLabel.text = secondNumber
        var intFirstNumber = (Int)firstNumber //error
        var intSecondNumber = (Int)secondNumber //error
    }

但是我得到这些错误:

  

一行上的连续语句必须用';'

分隔      

类型名称后的预期成员名称或构造函数调用   在类型之后添加参数以构造类型的值   使用“ .self”引用类型对象

     

表达式解析为未使用的l值

2 个答案:

答案 0 :(得分:0)

这不是Objective-C类型的强制转换,Swift初始化语法为

Int(firstNumber)

并且您可以用var替换所有出现的let(插座除外),因为所有变量都是常量

答案 1 :(得分:0)

快速转换时,您需要在要转换的表达式周围放置方括号,而不是要转换的类型,因此(Int)firstNumber应该变成Int(firstNumber)。然后,您将需要处理返回的可选内容,因为该字符串不能包含可以解析为有效Int的文本。

我认为错误消息令人困惑,因为编译器无法识别您使用的语法。