2015-09-05 2 views
-1

У меня есть контроллер панели вкладок с двумя вкладками, и обычно я могу нормально перемещаться между вкладками, но есть одна точка, в которой я выбираю вторую вкладку, и приложение вылетает в журналах te, это показывает только lldb если я пишу bt это дает мне следующеесбой приложения при переключении на вкладку

* thread #1: tid = 0x5dc59, 0x0061b0b2 libobjc.A.dylib`objc_msgSend + 14, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x1000000c) 
frame #0: 0x0061b0b2 libobjc.A.dylib`objc_msgSend + 14 
frame #1: 0x0134e10c UIKit`-[UITabBarController _tabBarItemClicked:] + 102 
frame #2: 0x0061d7cd libobjc.A.dylib`-[NSObject performSelector:withObject:withObject:] + 84 
frame #3: 0x0119ba40 UIKit`-[UIApplication sendAction:to:from:forEvent:] + 99 
frame #4: 0x0119b9d2 UIKit`-[UIApplication sendAction:toTarget:fromSender:forEvent:] + 64 
frame #5: 0x014f66fd UIKit`-[UITabBar _sendAction:withEvent:] + 466 
frame #6: 0x0061d7cd libobjc.A.dylib`-[NSObject performSelector:withObject:withObject:] + 84 
frame #7: 0x0119ba40 UIKit`-[UIApplication sendAction:to:from:forEvent:] + 99 
frame #8: 0x0119b9d2 UIKit`-[UIApplication sendAction:toTarget:fromSender:forEvent:] + 64 
frame #9: 0x012dc13a UIKit`-[UIControl sendAction:to:forEvent:] + 69 
frame #10: 0x012dc557 UIKit`-[UIControl _sendActionsForEvents:withEvent:] + 598 
frame #11: 0x012dc172 UIKit`-[UIControl sendActionsForControlEvents:] + 48 
frame #12: 0x014fb690 UIKit`-[UITabBar(Static) _buttonUp:] + 123 
frame #13: 0x0061d7cd libobjc.A.dylib`-[NSObject performSelector:withObject:withObject:] + 84 
frame #14: 0x0119ba40 UIKit`-[UIApplication sendAction:to:from:forEvent:] + 99 
frame #15: 0x0119b9d2 UIKit`-[UIApplication sendAction:toTarget:fromSender:forEvent:] + 64 
frame #16: 0x012dc13a UIKit`-[UIControl sendAction:to:forEvent:] + 69 
frame #17: 0x012dc557 UIKit`-[UIControl _sendActionsForEvents:withEvent:] + 598 
frame #18: 0x012db7c1 UIKit`-[UIControl touchesEnded:withEvent:] + 660 
frame #19: 0x011f3caa UIKit`-[UIWindow _sendTouchesForEvent:] + 874 
frame #20: 0x011f4786 UIKit`-[UIWindow sendEvent:] + 792 
frame #21: 0x011b2681 UIKit`-[UIApplication sendEvent:] + 242 
frame #22: 0x011c2ab8 UIKit`_UIApplicationHandleEventFromQueueEvent + 21484 
frame #23: 0x011962e7 UIKit`_UIApplicationHandleEventQueue + 2300 
frame #24: 0x008a006f CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15 
frame #25: 0x00895b7d CoreFoundation`__CFRunLoopDoSources0 + 253 
frame #26: 0x008950d8 CoreFoundation`__CFRunLoopRun + 952 
frame #27: 0x00894a5b CoreFoundation`CFRunLoopRunSpecific + 443 
frame #28: 0x0089488b CoreFoundation`CFRunLoopRunInMode + 123 
frame #29: 0x04bab2c9 GraphicsServices`GSEventRunModal + 192 
frame #30: 0x04bab106 GraphicsServices`GSEventRun + 104 
frame #31: 0x0119a0b6 UIKit`UIApplicationMain + 1526 
* frame #32: 0x00072624 PIBA`main + 180 at AppDelegate.swift:12 
    frame #33: 0x03526ac9 libdyld.dylib`start + 1 

из того, что я могу понять, что это действительно сбой при переключении с вкладки, но почему?

Я включил NS Zombies и она напечатана

*** -[PIBA.PreguntasViewController respondsToSelector:]: message sent to deallocated instance 0x7ae2dea0 

ответ

1

не это сейчас о переходе на вкладку, но это перераспределена экземпляр означает, что некоторые из экземпляра, который вы пытаетесь получить доступ к его не на стадии (памяти) прямо сейчас или его удалено из адреса памяти. так что определенно вы не можете получить доступ к какой-либо вещи, которой нет, там, где вы ищете надежду, вы понимаете, если у вас есть путаница, спросите меня.

+0

Как я могу отладить ее? Как я могу узнать, где и почему он удаляется из памяти? – Zablah

+0

проверить селектор или ответчик, которого вы вызываете здесь, либо создать точку прерывания исключения, проверьте это значение URL-адрес http://oramind.com/182-ios-5-xcode-backtrace/ –

+0

, если вы понимаете, что сказал вам и его работа для вас примите ответ –

0

У меня была аналогичная ситуация. В моем случае это сообщение имело место из-за переполнения стека массива. Это решение помогло мне отладить ошибку:

  1. Убедитесь, что у вас есть эта опция «debug-> Debug Workflow-> Всегда показывать Демонтажные» не проверено
  2. И позволяют это: Product-> схемное> Изменить Схема, Run-> Diagnostics-> Address Sanitizer.

После этого в коде будет отображаться переполнение, и вы сможете это исправить.

P.S .: Но я был смущен тоже, почему ошибка в логике приложения появляется только тогда, когда вкладка переключения ...

Смежные вопросы