我正在开发一个使用文本字段并将其转换为整数的应用程序。以前我的代码
textField.text.toInt()
工作。现在 Swift 将此声明为错误并告诉我这样做
textField.text!.toInt()
它说没有toInt()
并尝试使用Int()
. 那也行不通。刚刚发生了什么?
在 Swift 2.x 中,该.toInt()
函数已从String
. 作为替代,Int
现在有一个初始化器,它接受一个String
Int(myString)
在您的情况下,您可以使用Int(textField.text!)
insted oftextField.text!.toInt()
斯威夫特 1.x
let myString: String = "256"
let myInt: Int? = myString.toInt()
斯威夫特 2.x、3.x
let myString: String = "256"
let myInt: Int? = Int(myString)
let myString: NSString = "123"
let myStringToInt: Int = Int(myString.intValue)
将您的字符串声明为对象 NSString 并使用 intValue getter
创建自己的扩展方法很容易将其放回:
extension String {
func toInt() -> Int? {
return Int(self)
}
}
我在支付处理应用程序中也有同样的问题。斯威夫特 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])
这也给了我一些错误!
这段代码解决了我的错误
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