2013-05-01 5 views
6

Обычно я не хочу спрашивать SO, чтобы помочь понять мой отчет о сбое, но (а) я могу много узнать о чтении отчетов о сбоях от экспертов здесь, и (б), я понимаю, что Я не понимаю столько о потоке навигации, как я надеялся (эта часть специфична для отчета о сбое ниже, я думаю).iOS - сбой при загрузкеViewIfRequired

Так что я надеюсь, что кто-то столкнулся с одной проблемой и может помочь мне понять, почему мое приложение рушится.

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

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

Из прочитанного отчета о сбое ниже, есть ли у кого-нибудь какие-либо советы относительно того, почему мое приложение рушится ??? И почему это может быть непоследовательно?

Thread 0 Crashed: 
0 libobjc.A.dylib      0x344dd5aa _objc_msgSend + 10 
1 UIKit        0x3374458d -[UIViewController loadViewIfRequired] + 365 
2 UIKit        0x33799133 -[UIViewController contentScrollView] + 27 
3 UIKit        0x33799079 -[UINavigationController _computeAndApplyScrollContentInsetDeltaForViewController:] + 29 
4 UIKit        0x33798f5d -[UINavigationController _layoutViewController:] + 33 
5 UIKit        0x33798e81 -[UINavigationController _updateScrollViewFromViewController:toViewController:] + 273 
6 UIKit        0x337985c1 -[UINavigationController _startTransition:fromViewController:toViewController:] + 65 
7 UIKit        0x337984a9 -[UINavigationController _startDeferredTransitionIfNeeded:] + 325 
8 UIKit        0x337e54b1 -[UINavigationController defaultFirstResponder] + 129 
9 UIKit        0x33797849 -[UIResponder(Internal) _deepestDefaultFirstResponder] + 25 
10 UIKit        0x337976fb -[UIResponder(Internal) _promoteDeepestDefaultFirstResponder] + 31 
11 UIKit        0x33813349 -[UIWindowController transitionViewDidStart:] + 81 
12 UIKit        0x337bf8db -[UITransitionView transition:fromView:toView:removeFromView:] + 991 
13 UIKit        0x33a00059 __91-[UIWindowController transition:fromViewController:toViewController:target:didEndSelector:]_block_invoke_0236 + 389 
14 UIKit        0x33812961 -[UIWindowController transition:fromViewController:toViewController:target:didEndSelector:] + 4761 
15 UIKit        0x33810fc7 -[UIViewController presentViewController:withTransition:completion:] + 3395 
16 UIKit        0x33933257 -[UIViewController presentModalViewController:animated:] + 31 
17 MyApp        0x00044973 -[AppViewController cmdPressed] (AppViewController.mm:553) 
18 UIKit        0x338100a5 -[UIApplication sendAction:to:from:forEvent:] + 73 
19 UIKit        0x33810057 -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 31 
20 UIKit        0x33810035 -[UIControl sendAction:to:forEvent:] + 45 
21 UIKit        0x3380f8eb -[UIControl(Internal) _sendActionsForEvents:withEvent:] + 503 
22 UIKit        0x3380fde1 -[UIControl touchesEnded:withEvent:] + 489 
23 UIKit        0x337385f1 -[UIWindow _sendTouchesForEvent:] + 525 
24 UIKit        0x33725801 -[UIApplication sendEvent:] + 381 
25 UIKit        0x3372511b _UIApplicationHandleEvent + 6155 
26 GraphicsServices     0x389085a3 _PurpleEventCallback + 591 
27 GraphicsServices     0x389081d3 PurpleEventCallback + 35 
28 CoreFoundation      0x3a5c8173 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 35 
29 CoreFoundation      0x3a5c8117 __CFRunLoopDoSource1 + 139 
30 CoreFoundation      0x3a5c6f99 __CFRunLoopRun + 1385 
31 CoreFoundation      0x3a539ebd _CFRunLoopRunSpecific + 357 
32 CoreFoundation      0x3a539d49 _CFRunLoopRunInMode + 105 
33 GraphicsServices     0x389072eb _GSEventRunModal + 75 
34 UIKit        0x337792f9 _UIApplicationMain + 1121 
35 MyApp        0x0003d083 main (main.m:44) 

Любые советы приветствуются. Благодаря!!!

+0

Авария в objc_msgSend часто связана с проблемой управления памятью. Попробуйте воспроизвести сбой в то время как using the Zombies instrument, и посмотрите, дает ли это дополнительную информацию. –

+0

Это рушится в presentModalViewController, поэтому вы, вероятно, отправляете некоторые плохие вещи. Вы должны сообщать, какие сообщения об ошибках вы получаете, поскольку невозможно увидеть более глубокое из того, что вы показали здесь. –

+0

Пожалуйста, разместите код из 'AppViewController' – Nick

ответ

-3

Попробуйте добавить этот метод. Надеюсь, что это поможет вам.

-(void)setView:(UIView*)view 
{ 
    if(view != nil) 
[super setView:view]; 
    else 

     NSLog(@"Memory"); 
} 
0

Я знаю, что это поздно, и также я не уверен, что это решит вашу проблему или нет. Но когда я столкнулся с этой проблемой (связанный с loadViewIfRequired) и много боролся, потому что в моем случае это иногда случалось сбой. Я вызывал [UITableViewController tableView] вне моего класса контроллера tableview, который вызывался перед загрузкой tableview. Поскольку мой tableView не был загружен должным образом, поэтому мой класс UITableViewController пытался вызвать loadViewIfRequired API и который вызывал ViewDidLoad в другом потоке (не в основном потоке). Я исправил это, не вызвав [UITableViewController tableView] это до того, как мой загрузчик tableviewcontroller загрузится, и я загрузил это в основной поток, который исправил мою проблему.

0

Я столкнулся с той же проблемой. Для меня проблема заключалась в том, что я изменил файл xib, но забыл подключить все предыдущие выходы.

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