Я пытаюсь самостоятельно пройти курс CS193P. Я по заданию 2 курса и части задания прошу меня сделать следующее:Переменная UILabel должна быть необязательной Double, но я не хочу, чтобы метка отображалась необязательно (valueOfNumber)
«Изменение вычисляемого переменным экземпляра displayValue быть необязательным двойным, а не двойной»
я был в состоянии измените значение displayValue
как необязательный Double, но теперь мой UILabel, который показывает displayValue
, теперь отобразит необязательное значение вместо двойного значения (что имеет смысл).
Пример:
5 (нажмите ввод) будет отображать значение факультативным (5.0) в UILabel.
Вот что я пробовал:
Я определил, что result
и displayValue!
вернется в два раза.
Я попытался изменить display.text = result
на display!.text! = result
, но это не исправило проблему.
Вот фрагмент моего кода, я думаю, вам больше не нужно больше, но, пожалуйста, прокомментируйте, если вы думаете, что я должен показать что-то еще!
P.S. имя дисплея display
@IBAction func enter() {
if let result = brain.pushOperand(displayValue!) {
displayValue = result
} else {
displayValue = 0
}
}
var displayValue: Double? {
get {
return NSNumberFormatter().numberFromString(display.text!)!.doubleValue
}
set{
display!.text! = "\(newValue)" //display is the UILabel
}
Проблема в том, что 'newValue' является необязательным, который должен быть развернут при создании этикетки. 'display.text =" \ (newValue!) "'. Конечно, это приведет к сбою, если 'displayValue' получит значение' nil', поэтому вы должны рассмотреть, как вы хотите это обработать. – vacawama
Да - я планировал использовать «if let», чтобы обрабатывать этот случай nil. Я просто хотел выяснить, как правильно отобразить его. EDIT: Извините. Просто увидел, что вы добавили восклицательный знак в «\ newValue», который исправил мою проблему. Спасибо за совет – Sami
@vacawama любые предложения о том, как обращаться с делом 'nil'? Я продолжаю рушиться :(Профессор в видео первоначально имел бы «displayValue» равным нулю в случае «nil», но он сказал, что это плохой способ сделать это, потому что он действительно должен равняться «nil» – Sami