Рекомендации по отладке UITextField
-
09-09-2019 - |
Вопрос
Я отлаживаю некоторый код, и мне трудно видеть и отслеживать значения, вводимые с клавиатуры iPhone в UITextField (и из UIDatePicker).
Я ожидал, что Arguments>self>textField>_text будет отражать значение, введенное в textField, но это не так.Он показывает другое значение (например, 0,00 доллара США вместо 1,25 доллара США).Когда я записываю значение через NSLog(@"textField.text:%@", textField.text);он показывает правильное значение 1,25 доллара.Что дает?
Интересно, может ли это быть связано с тем фактом, что UITextField по-прежнему является первым ответчиком, и этот код, который я отлаживаю, находится в кнопке «Сохранить», которая нажимается сразу после ввода данных в указанный UITextField?!?Если да, то остается вопрос: где хранятся эти данные и как их можно отладить?У меня аналогичная проблема с UIDatePicker, используемым в аналогичной ситуации для изменения значения UITextField.
Спасибо!
Решение
По сути, вы спрашиваете;
Как я могу просмотреть данные частного класса в отладчике и отразить в них то, что я ожидаю?
Ответ в основном заключается в том, что вы не можете.Поле _text может быть обновлено позже или не использоваться вообще.
Если вам нужен способ отладки того, что введено в UITextField, вы можете рассмотреть возможность использования textField:shouldChangeCharactersInRange в делегате для печати символов, если они набраны.
Другие советы
Отладчик не понимает точечную нотацию (textField.text).Но помните, что свойства — это просто сокращение для вызовов методов, поэтому вызов [textfield text] делает то же самое.Итак, если вы хотите увидеть значение текстового поля в отладчике, просто введите:
po [textField text]