UITextField перехватывает событие textFieldDidBeginEditing вызывает EXC_BAD_ACCESS в main.m - PullRequest
0 голосов
/ 11 апреля 2011

Это загадочно.

Мой контроллер представления реализует протокол UITextFieldDelegate в файле .h, а в файле .mm у меня есть

myTextField.delegate = self

И мое событие textFieldDidBeginEditing - это просто сообщение NSLog.

Когда я запускаю свою программу и устанавливаю фокус на myTextField, я получаю ошибку EXC_BAD_ACCESS.

int main(int argc, char *argv[])
{
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    int retVal = UIApplicationMain(argc, argv, nil, nil); // EXC_BAD_ACCESS
    [pool release];
    return retVal;
}

Это должно быть явной ошибкой, которая у меня где-то есть, но она беспокоит меня всю ночь.Кто-нибудь знает почему?И как я могу поймать событие начала редактирования textField?

1 Ответ

4 голосов
/ 11 апреля 2011

Прежде всего, Xcode 4 изменил поведение отладчика. На панели отладчика слева должен быть ползунок внизу - показывающий вам БОЛЕЕ или МЕНЬШЕ стековые кадры. Вы показываете верхний фрейм стека (UIApplication) - скорее всего, если вы передвинете этот слайдер, вы увидите больше идеи о том, где вы терпите крах.

Кроме того, если это EXC_BAD_ACCESS, включили ли вы NSZombieEnabled = YES в качестве переменной среды, чтобы отследить то, что переиздается? Обычно это проблема с памятью.

...