Swift Code Error: Value of type String has no member Int
Swift Code Error: Value of type String has no member Int
我正在尝试在 Swift 中构建一个简单的计算器,但我不知道我是如何或为什么会收到错误 ("Value of type String has no member type 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.
}
}
我哪里错了?
而不是:
firstNumber = calculatorDisplay.text?.Int()!
你想要这样的东西:
if let text = calculatorDisplay.text? {
firstNumber = Int(text)!
}
或者如果你想生活在边缘:
firstNumber = Int(calculatorDisplay.text!)!
String
类型中没有Int()
方法。
要将 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
我正在尝试在 Swift 中构建一个简单的计算器,但我不知道我是如何或为什么会收到错误 ("Value of type String has no member type 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.
}
}
我哪里错了?
而不是:
firstNumber = calculatorDisplay.text?.Int()!
你想要这样的东西:
if let text = calculatorDisplay.text? {
firstNumber = Int(text)!
}
或者如果你想生活在边缘:
firstNumber = Int(calculatorDisplay.text!)!
String
类型中没有Int()
方法。
要将 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