.toInt()在Swift 2中删除?

我正在研究一个使用文本字段并将其转换为整数的应用程序。 以前我的代码

textField.text.toInt() 

工作。 现在Swift宣称这是一个错误,并告诉我这样做

 textField.text!.toInt() 

它说没有toInt()并尝试使用Int() 。 那也行不通。 刚刚发生了什么?

在Swift 2.x中, .toInt()函数被从String中移除。 作为替代, Int现在有一个接受String的初始化器

 Int(myString) 

在你的情况下,你可以使用Int(textField.text!) textField.text!.toInt()

Swift 1.x

 let myString: String = "256" let myInt: Int? = myString.toInt() 

Swift 2.x,3.x

 let myString: String = "256" let myInt: Int? = Int(myString) 

Swift 2

 let myString: NSString = "123" let myStringToInt: Int = Int(myString.intValue) 

将您的string声明为对象NSString并使用intValue getter

我在支付处理应用程序中也有同样的问题。 Swift 1.0

 let expMonth = UInt(expirationDate[0].toInt()!) let expYear = UInt(expirationDate[1].toInt()!) 

在Swift 2.0之后

 let expMonth = Int(expirationDate[0]) let expYear = Int(expirationDate[1]) 

它很容易创build自己的扩展方法把它放回:

 extension String { func toInt() -> Int? { return Int(self) } } 

这也给我一些错误!

这段代码解决了我的错误

 let myString: String = dataEntered.text! // data entered in textField var myInt: Int? = Int(myString) // conversion of string to Int myInt = myInt! * 2 // manipulating the integer sum,difference,product, division finalOutput.text! = "\(myInt)" // changes finalOutput label to myInt