iPhone EXC_BAD_ACCESS после события viewDidAppear - PullRequest
0 голосов
/ 26 января 2011

Мне нужна подсказка о том, где искать обнаружение причины сбоя, с сообщением EXC_BAD_ACCESS, которое должно быть связано с вопросами «сохранить - освободить». Это происходит через мгновение ПОСЛЕ события viewDidAppear.

0   0x01285a63 in objc_msgSend  
1   0x0580e400 in ??  
2   0x0105fb8d in _ CFAutoreleasePoolPop  
3   0x00022443 in -[NSAutoreleasePool release]  
4   0x002d3bf2 in _ UIApplicationHandleEvent  
5   0x018cca36 in PurpleEventCallback  
6   0x01105064 in __ CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__  
7   0x010656f7 in __CFRunLoopDoSource1  
8   0x01062983 in __CFRunLoopRun  
9   0x01062240 in CFRunLoopRunSpecific  
10  0x01062161 in CFRunLoopRunInMode  
11  0x002cafa8 in -[UIApplication _run]  
12  0x002d742e in UIApplicationMain  
13  0x00001ca0 in main at main.m:14

Странно то, что не случается всегда , просто иногда; Я проверил весь класс, который был впервые запущен, но я не вижу ничего, что могло бы вызвать эту проблему. В дополнение к этому, если я копаю шаг за шагом с отладчиком, кажется, что проблема никогда не возникает, может быть проблема с симулятором?

Ответы [ 2 ]

3 голосов
/ 26 января 2011

Не ответ, а совет - скомпилируйте приложение для симулятора, запустите инструменты и добавьте инструмент выделения памяти с включенным NSZombies из библиотеки.Запускайте приложение в инструментах, пока не получите уведомление об отправленном сообщении объекту зомби.

3 голосов
/ 26 января 2011

Мне кажется, что пул автоматического выпуска пытается освободить объект, который уже освобожден. Полагаю, Н.С.Зомби поможет найти нужный объект.

РЕДАКТИРОВАТЬ: Чтобы активировать NSZombie, выполните следующие действия:

  1. Получить информацию об исполняемом файле.
  2. Перейти на вкладку аргументов.
  3. В разделе «Переменные, которые должны быть установлены в среде:» добавить:

Имя: NSZombieEnabled Значение: ДА

Затем запустите ваше приложение как обычно, и когда оно выйдет из строя, оно должно сообщить вам, какой освобожденный объект получил сообщение о выпуске.

...