ОБНОВЛЕНИЕ: Я думаю, что у вас возникли проблемы, отличные от упомянутых вами, после того, как ваш ответ несколько раз менялся, я понял, что вы хотите использовать значение UITextField, чтобы использовать его для своего URL WebView для загрузки, а также для проверки префикса иногда в другом состоянии позже. Но вы на самом деле загружаете веб-представление на viewDidLoad, которое не будет работать для вас, поскольку у вас еще не было возможности изменить значение UITextField вручную с телефона / симулятора.
Это означает, что может быть другая работа - сценарий ios и потоки, которые вы, возможно, захотите продумать и реализовать, какой из них лучше всего подходит для нужд вашего бизнеса. На данный момент, если вы хотите, чтобы значение UITextField сохранялось в переменной и обращалось к последнему значению или его первому значению, вы можете следовать моему первоначальному ответу:
Если вы хотите variable
чтобы быть сохраненным свойством , здесь вы сохраняете значение textfield.text
именно в тот момент, когда вы создаете экземпляр variable
, тогда проблема в вашем коде в том, что textfield.text
может быть nil
, так что вы бы лучше обработали это как:
let variable = textfield.text ?? ""
Если вы хотите, чтобы variable
было вычисляемым свойством , в этом случае каждый раз, когда вы пытаетесь получить доступ к variable
и Получив его значение, он будет рассчитывать его на основе кода в его закрытии, поэтому он будет извлекать последнее значение textfield.text
каждый раз, когда вы пытаетесь получить variable
значение:
var variable: String? { // optional, remember textfield.text can return nil
return textfield.text
}
Если вы всегда хотите вернуть что-то, что вы могли бы вместо этого объявить таким образом и вернуть пустую строку в случае, если textfield.text равен nil ( помните, textfield.text
может быть nil
):
var variable: String { // not optional, you give a "" default value if nil
return textfield.text ?? ""
}