.toInt() удален в Swift 2?
Я работал над приложением, которое использовало текстовое поле и переводило его в целое. Ранее мой код
textField.text.toInt()
работал. Теперь Swift объявляет об этом как ошибке и говорит мне делать
textField.text!.toInt()
и он говорит, что нет toInt()
и попробовать использовать Int()
. Это тоже не работает. Что только что произошло?
Ответы
Ответ 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