Это мой первый опыт Swift. Я следую примеру в книге Swift по примеру, и, видимо, есть опечатка, когда я скопировал код из github автора site.Значение необязательного типа String? не разворачивается с text.toInt
Вот соответствующий код, который, как представляется, вызывает проблему. Я получаю эту ошибку:
Value of optional type String? not unwrapped
в этой строке: пусть число = numberTxtField.text.toInt().
@IBOutlet weak var numberTxtField: UITextField!
@IBAction func onOkPressed(sender: AnyObject) {
let number = numberTxtField.text.toInt()
if let number = number {
selectedNumber(number)
} else {
var alert = UIAlertController(title: nil, message: "Enter a number", preferredStyle: UIAlertControllerStyle.Alert)
alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler: nil))
self.presentViewController(alert, animated: true, completion: nil)
}
}
Может кто-то любезно объяснить, как это исправить, как это день для меня с Swift, и я все еще пытаюсь переварить символы, как! а также ? а также ??
Я читал другие вопросы, подобные этому, но они, похоже, не помогли мне решить эту проблему.
Благодаря
Int (numberTxtField.text!) –
@LeoDabus true, принудительное развертывание необходимо в этом случае – lucianomarisi
Я принимаю этот ответ, поскольку он казался более упорядоченным, но ответ, предоставленный the_critic, также работал. Оба введено предупреждение в этой строке: var alert = UIAlertController (название: nil, message: «Введите число», preferredStyle: UIAlertControllerStyle.Alert) , но, принимая предложение Xcode добавить let перед этим утверждением, позволило мне создать код успешно. Теперь, чтобы больше узнать о опциях. Всем спасибо. – Jazzmine