2013-07-09 3 views
0

Хорошо, я действительно застрял в этом. У меня есть метод, который срабатывает при изменении текста UITextField. Функция срабатывает без проблем, но когда код [(UITextField *)sender setText:@""]; запускает приложение, выдается ошибка с плохим доступом.Изменение текста UITextField из обратного вызова вызывает EXC_BAD_ACCESS

Как я могу просто изменить текст текстового поля?


EDIT: Я проверил, если отправитель был равен нулю с

if(sender != nil) 
    [(UITextField *)sender setText:@""]; 

и я проверил, если это был UITextField с

if([sender isKindOfClass: [UITextField class]]) 
    [(UITextField *)sender setText:@""]; 

И если заявления прошло, но Bad Ошибка доступа по-прежнему брошен на линии

[(UITextField *)sender setText:@""]; 
+0

Показать всю реализацию метода и предоставить любую информацию об исключении, которое у вас есть (добавьте точку останова исключений, если вы не можете определить, в какой строке она происходит). – Wain

+0

Действительно ли ваш отправитель текстового поля? попробуйте 'NSLog («% @ », NSStringFromClass ([sender class]);', чтобы увидеть, что это такое – katzenhut

+0

@katzenhut Неправильный класс не вызовет ошибку сегментации. Это приведет к тому, что 'NSException' будет передано с сообщением типа «непризнанный селектор, отправленный в класс/экземпляр XYZ». –

ответ

-1

Кажется, что h ave решила проблему, установив функцию для запуска, когда пользователь фокусируется на текстовом поле, а не когда пользователь начинает изменять значение. Он должен иметь какое-то отношение к тому, что пользователь меняет значение, и метод одновременно меняет значение на «». Возможно, он просто не может справиться с этим. Во всяком случае, она решила мою конкретную проблему, но не проблема полностью.

Смежные вопросы