У меня странная ошибка, я не уверен, как отследить. Я запускаю приложение в Simmulator 3.0. Он имеет три вкладки на tabBarcontroller, назовем их tab1, tab2 и tab3. Все три вкладки являются подклассом настраиваемой сгруппированной таблицы. Если я бесконечно нажимаю туда-сюда между tab1 и tab3, проблем не возникает. Однако, если я щелкаю от tab1 или tab3 до tab2 ровно пять раз, программа вылетает после нажатия на tab1 или tab3. У меня было две разные трассировки (в основном идентичные), когда я делал это:
backtrace1:
objc[2988]: FREED(id): message release sent to freed object=0xfec100
Program received signal: “EXC_BAD_INSTRUCTION”.
(gdb) backtrace
#0 0x92a2dbfa in _objc_error ()
#1 0x92a2dc30 in __objc_error ()
#2 0x92a2c637 in _freedHandler ()
#3 0x302042e8 in CFRelease ()
#4 0x00370c31 in CALayerUpdateSublayers ()
#5 0x0036f173 in -[CALayer dealloc] ()
#6 0x0036100e in CALayerRelease ()
#7 0x00369dad in CALayerFreeTransaction ()
#8 0x003620b8 in CA::Transaction::commit ()
#9 0x0036a2e0 in CA::Transaction::observer_callback ()
#10 0x30245c32 in __CFRunLoopDoObservers ()
#11 0x3024503f in CFRunLoopRunSpecific ()
#12 0x30244628 in CFRunLoopRunInMode ()
#13 0x32044c31 in GSEventRunModal ()
#14 0x32044cf6 in GSEventRun ()
#15 0x309021ee in UIApplicationMain ()
#16 0x0000208a in main (argc=1, argv=0xbfffefbc) at /Users/johnbulcher/Documents/myApps/AnApp/main.m:14
backtrace2:
Program received signal: “EXC_BAD_ACCESS”.
(gdb) backtrace
#0 0x92a3d688 in objc_msgSend ()
#1 0x302042e8 in CFRelease ()
#2 0x00370c31 in CALayerUpdateSublayers ()
#3 0x0036f173 in -[CALayer dealloc] ()
#4 0x0036100e in CALayerRelease ()
#5 0x00369dad in CALayerFreeTransaction ()
#6 0x003620b8 in CA::Transaction::commit ()
#7 0x0036a2e0 in CA::Transaction::observer_callback ()
#8 0x30245c32 in __CFRunLoopDoObservers ()
#9 0x3024503f in CFRunLoopRunSpecific ()
#10 0x30244628 in CFRunLoopRunInMode ()
#11 0x32044c31 in GSEventRunModal ()
#12 0x32044cf6 in GSEventRun ()
#13 0x309021ee in UIApplicationMain ()
#14 0x0000208a in main (argc=1, argv=0xbfffefbc) at /Users/johnbulcher/Documents/myApps/AnApp/main.m:14
Мне еще не удалось воспроизвести backtrace1, хотя backtrace2 так же устойчив, как и часовой механизм. В этой аварии есть две странные вещи:
1) программное переключение между вкладками с использованием "tabBarController.selectedIndex"
не вылетает приложение - мне приходится вручную выбирать вкладки, чтобы вылетать приложение.
2) Я не вижу ни одного моего кода, указанного в обратном следе, кроме основного. Строка кода в главной строке, указанная в обратном следе,
int retVal = UIApplicationMain(argc, argv, nil, @"AnAppDelegate");
Где мне начать искать, чтобы решить эту ошибку?