Swift代码错误:String类型的值没有成员Int

问题描述 投票:1回答:2

我正在尝试在Swift中构建一个简单的计算器,但我无法弄清楚我是如何或为什么得到错误(“String类型的值没有成员类型Int”)或如何解决它。到目前为止这是我的代码:

class ViewController: UIViewController {
    var isTypingNumber = false
    var firstNumber = Int!()
    var secondNumber = Int!()
    var operation = ""

@IBOutlet weak var calculatorDisplay: UILabel!


@IBAction func acButtonTapped(sender: AnyObject) {

}
@IBAction func number7Tapped(sender: AnyObject) {
    let number7 = sender.currentTitle
    if isTypingNumber{
        calculatorDisplay.text = calculatorDisplay.text! + number7!!
    }else{
        calculatorDisplay.text = number7
        isTypingNumber = true
    }
}
@IBAction func divideTapped(sender: AnyObject) {
    isTypingNumber = false

    firstNumber = calculatorDisplay.text?.Int()! **//Error: Value of type 'String' has no member 'Int'**
    operation = sender.currentTitle!!
}

@IBAction func equalsTapped(sender: AnyObject) {
    isTypingNumber = false
    var result = 0
    secondNumber = calculatorDisplay.text?.Int()! **//Error: Value of type 'String' has no member 'Int'**

    if operation == "+" {
        result = firstNumber + secondNumber
    } else if operation == "-" {
        result = firstNumber - secondNumber
    }else if operation == "X" {
        result = firstNumber * secondNumber
    }else if operation == "÷"{
        result = firstNumber / secondNumber
}
    calculatorDisplay.text = "\(result)"
}



override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.

    firstNumber = 0
    secondNumber = 0
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

}

我哪里做错了?

swift xcode7
2个回答
4
投票

代替:

firstNumber = calculatorDisplay.text?.Int()!

你想要的东西:

if let text = calculatorDisplay.text? {
    firstNumber = Int(text)!
}

或者,如果你想生活在边缘:

firstNumber = Int(calculatorDisplay.text!)!

2
投票

Int()类型中没有String方法。

要将Int转换为String,请尝试以下方法:

guard let text = calculatorDisplay.text else {
    //the CalculatorDisplay has no text, deal with it accordingly
}
guard let firstNumber = Int(text) else {
    //the CalculatorDisplay has text, but it's not a valid Int
}

//use firstNumber
© www.soinside.com 2019 - 2024. All rights reserved.