Не могу установить переменную в значение текстового поля - PullRequest
0 голосов
/ 24 мая 2019

Я пытаюсь получить текстовое значение UITextField, преобразовать его в Double и сохранить его в переменной. Однако я получаю сообщение об ошибке:

Тип выражения '@lvalue String?' является двусмысленным без большего контекста.

Что это значит?

class SituationViewController: GBBaseViewController {
    // ....
    @IBOutlet var txtConsumption: UITextField!

    func fillValues(){
        let consumption = Double(self.txtConsumption.text) ?? 0 // the error happens here
    }
}

Ответы [ 2 ]

2 голосов
/ 24 мая 2019

Проблема в том, что свойство text для UITextField является Optional, но инициализатору Double требуется необязательный String. Просто укажите значение по умолчанию для строки.

let consumption = Double(self.txtConsumption.text ?? "") ?? 0
0 голосов
/ 24 мая 2019

Попробуйте это:

func fillValues() {
    if let myText = self.txtConsumption.text { // Check if txtConsumption has a value
       let consumption = Double(myText) ?? 0
  }
}

Ошибка произошла из-за того, что txtConsump.text может иметь значение nil, для Double необходим параметр no-nil для инициализатора.

...