Как превратить содержимое текстового поля в переменную в Xcode 11 (swift)? - PullRequest
1 голос
/ 24 марта 2020

Как видно из. заголовок, я пытаюсь превратить содержимое текстового поля в переменную. Я использовал этот код:

@IBOutlet weak var TextField: UITextField!
let variable = TextField.text

ОБНОВЛЕНИЕ: Я создал новый проект с новым кодом, который я вставил выше. Единственными ошибками, которые я получил, было следующее: невозможно использовать элемент экземпляра TextField в инициализаторе свойства; инициализаторы свойств запускаются до того, как станет доступным «self».

1 Ответ

1 голос
/ 24 марта 2020

ОБНОВЛЕНИЕ: Я думаю, что у вас возникли проблемы, отличные от упомянутых вами, после того, как ваш ответ несколько раз менялся, я понял, что вы хотите использовать значение 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 ?? ""
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...