Подтвердить что ты не робот

.toInt() удален в Swift 2?

Я работал над приложением, которое использовало текстовое поле и переводило его в целое. Ранее мой код

textField.text.toInt() 

работал. Теперь Swift объявляет об этом как ошибке и говорит мне делать

textField.text!.toInt()

и он говорит, что нет toInt() и попробовать использовать Int(). Это тоже не работает. Что только что произошло?

4b9b3361

Ответ 1

В Swift 2.x функция .toInt() была удалена из String. Взамен, Int теперь имеет инициализатор, который принимает String

Int(myString)

В вашем случае вы можете использовать Int(textField.text!) insted 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)

Ответ 2

Swift 2

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

объявить вашу строку как объект NSString и используйте intValue getter

Ответ 3

У меня было то же самое, что и в приложениях для обработки платежей. 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])

Ответ 4

Его достаточно легко создать собственный метод расширения, чтобы вернуть его:

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

Ответ 5

Это также дало мне некоторые ошибки!

Этот код разрешил мои ошибки

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