2012-06-20 4 views
0

Обычно журнал сбоев указывает, где это может происходить, но в этом случае это все, что я получаю. Допустим, мой основной взгляд - A, и у меня есть взгляды A, B и C.iOS Попытка выяснить неприятный крах

Это происходит только тогда, если я делаю следующее:

Отойди от А до В до С, выйти из приложения и загрузить несколько других приложений. Затем вернитесь к моему приложению, вернитесь в B, а затем вернитесь к A (ЭТО, ГДЕ ЭТО КРИСТАЛЕТ).

EDIT - я отправил неправильный нить, прежде чем ... вот правильная нить

CRASH LOG:

Exception Type: EXC_BAD_ACCESS (SIGSEGV) 
Exception Codes: KERN_INVALID_ADDRESS at 0x4daf03bd 
Crashed Thread: 7 

Thread 7 name: Dispatch queue: com.apple.root.default-priority 
Thread 7 Crashed: 
0 libobjc.A.dylib     0x36f22f78 objc_msgSend + 16 
1 Foundation      0x33707d04 _NSDescriptionWithLocaleFunc + 44 
2 CoreFoundation     0x34f3a96e __CFStringAppendFormatCore + 7998 
3 CoreFoundation     0x34eb51d8 _CFStringCreateWithFormatAndArgumentsAux + 68 
4 Foundation      0x33707c2e +[NSString stringWithFormat:] + 54 
5 MyGreatApp      0x00061028 -[DataAccessor getProducts:div:productType:cat:searchsilver:completion:] (DataAccessor.m:301) 
6 MyGreatApp      0x00017196 __36-[products showNationalCategories]_block_invoke_0 (products.m:1688) 
7 libdispatch.dylib    0x37886c52 _dispatch_call_block_and_release + 6 
8 libdispatch.dylib    0x378927b4 _dispatch_worker_thread2 + 256 
9 libsystem_c.dylib    0x35b45df4 _pthread_wqthread + 288 
10 libsystem_c.dylib    0x35b45cc8 start_wqthread + 0 

Вот строка 301 (Обратите внимание, все объекты вдаваясь в строке являются NSStrings):

NSString *urlStr = [NSString stringWithFormat:@"%@?api_key=%@&device[duid]=%@&division=%@",apiUrl,apiKey, duid, division]; 
+0

Что-то делать с плохим экземпляром 'UIImage', но сложно сказать, если вы не разместите какой-то код ... – Macmade

+0

Запустите gdb, покажите нам, какие параметры memcpy есть. –

+0

Я собираюсь принять дикое предположение и сказать, что источник или dest на вашем изображении NULL, или, возможно, вы пытаетесь скопировать байты 0xFFFFFFFF. –

ответ

0

Моя дикая догадка что что-то освобождаться в viewDidUnload, которая опиралась на и не повторно инициализирован. В большинстве случаев viewDidUnload не вызывается во время тестирования; и это единственное, что, как я могу думать, может произойти, пока вы в других приложениях. Сделайте некоторую двойную проверку всех свойств A, которые используются, когда представление появляется на экране, и дважды проверьте, что они не равны нулю.

0

Я думаю, что ваш обратный вызов запускается, когда отображается другой контроллер вида из того, который вы ожидали. Я думаю, что его первое самое лучшее, чтобы выработать ошибочный указатель строки, NSLogging их на отдельных строках кода. Также вы использовали любые _block украшения для этих строковых параметров (или использовали их дважды: как внутри, так и вне блока) - это сломало бы их сохранение.