61

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

textField.text.toInt() 

工作。现在 Swift 将此声明为错误并告诉我这样做

textField.text!.toInt()

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

4

5 回答 5

121

在 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)
于 2015-06-09T18:02:40.710 回答
4

斯威夫特 2

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

将您的字符串声明为对象 NSString 并使用 intValue getter

于 2016-03-02T19:21:18.667 回答
1

创建自己的扩展方法很容易将其放回:

extension String {
    func toInt() -> Int? {
        return Int(self)
    }
}
于 2017-02-03T00:52:27.643 回答
0

我在支付处理应用程序中也有同样的问题。斯威夫特 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])
于 2016-03-17T05:05:18.423 回答
-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
于 2015-12-07T13:30:41.030 回答