Я уже некоторое время работаю над приложением. До сих пор я запускал его, пока отладчик был подключен, и он работал хорошо (потому что NSZombies был включен) ...
Недавно я заметил, что при нажатии на новый контроллер представления приложение зависает. Я подумал, что это будет простое решение, но пока все выглядит не так.
Приложение работает следующим образом (этот метод работал ранее) ...
- Пользователь выбирает вид
- RootViewController помещается в tableViewController
- Пользователь выбирает элемент
- ViewController инициализирован и настроен
- Контроллер навигации выдвигает на новый ViewController
Теперь, если я настрою свою схему для включения NSZombies, то это будет работать нормально ... мой новый вид загружается и начинает работать.
Однако .. если я не сделаю, приложение вылетает!
В моем окне консоли появляется следующая ошибка:
2012-01-17 19:51:14.599 DrivingInstructor[61946:17003] -[PhotoViewController loadView]
2012-01-17 19:51:14.654 DrivingInstructor[61946:17003] -[PhotoViewController viewWillAppear:]
DrivingInstructor(61946,0xac6ad2c0) malloc: *** error for object 0x92b0e14: incorrect checksum for freed object - object was probably modified after being freed.
*** set a breakpoint in malloc_error_break to debug
Итак, я установил malloc_error_break, чтобы увидеть, что происходит ... не имеет значения, я все еще получаю вышеуказанную ошибку (обратите внимание, что первые два сообщения показывают, что мой новый ViewController инициализируется)
Если я запустил обратную трассировку после сбоя .. вот мой вывод:
#0 0x956a9c97 in malloc_error_break ()
#1 0x9566b4ce in szone_error ()
#2 0x9566b54e in free_list_checksum_botch ()
#3 0x9566b63f in tiny_free_list_remove_ptr ()
#4 0x956702b1 in szone_free ()
#5 0x01f30a98 in __CFAllocatorSystemDeallocate ()
#6 0x01f2978a in CFAllocatorDeallocate ()
#7 0x01f30960 in CFRelease ()
#8 0x01fe6b4f in __CFDictionaryStandardReleaseKey ()
#9 0x01f474df in __CFBasicHashDrain ()
#10 0x01f304e3 in CFRelease ()
#11 0x02011e94 in -[__NSArrayM dealloc] ()
#12 0x021c8e4d in _objc_rootRelease ()
#13 0x021c8e10 in objc_release ()
#14 0x021c9c60 in (anonymous namespace)::AutoreleasePoolPage::pop ()
#15 0x01f58ed8 in _CFAutoreleasePoolPop ()
#16 0x015f08ce in __NSFireDelayedPerform ()
#17 0x01ff8966 in __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ ()
#18 0x01ff8407 in __CFRunLoopDoTimer ()
#19 0x01f5b7c0 in __CFRunLoopRun ()
#20 0x01f5adb4 in CFRunLoopRunSpecific ()
#21 0x01f5accb in CFRunLoopRunInMode ()
#22 0x023e2879 in GSEventRunModal ()
#23 0x023e293e in GSEventRun ()
#24 0x00cd8a9b in UIApplicationMain ()
#25 0x00002149 in main (argc=1, argv=0xbffff5d4) at main.m:14
Я должен также указать ... Сначала я думал, что это вызвано тем, что я запускаю фоновый поток, который изменяет размеры изображений для меня, пока загружается пользовательский интерфейс, поэтому нет зависания, так как мой первый журнал аварийных отключений предполагал, что он зависал на определенная строка в моем классе обработки изображений, но после невозможности отсортировать это и закомментировать функцию, которая изменяет размеры изображений (работает в фоновом потоке) .. Теперь приложение не работает даже без вызова этого потока!
Я не знаю, что случилось с моими первоначальными журналами аварий, когда мне сообщали, что это была проблема с использованием UIGraphics в фоновом потоке, когда происходил сбой ...
Теперь просто вылетает: S
Вот мой аварийный журнал ниже:
(вставлять, когда я превышаю 3к символов)
http://pastebin.com/dGF7QdeH
Я бы поделился кодом с приложением, в котором возникает эта проблема, но я не знаю, где это происходит, поэтому не могу показать вам: S
Из того, что я вижу, вызывается функция viewWillAppear :, поэтому я могу настроить свое представление, но оно падает до того, как я на самом деле нажимаю на него, но в настройке представления нет ничего необычного, так как единственный код, который я изменил так как последняя рабочая версия настраивает мой взгляд (что работает нормально)
Если кто-нибудь сможет мне помочь с этим, я буду ОЧЕНЬ благодарен ... Я весь день подчеркивал это, и публикация здесь - мое последнее средство (прежде чем я зайду на developer.apple.com)
Спасибо за чтение. Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.
* * Ли тысяча сорок-девять