Вопрос

Я отлаживаю некоторый код, и мне трудно видеть и отслеживать значения, вводимые с клавиатуры 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]
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top