Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

iOS - Crash at loadViewIfRequired

I typically wouldn't want to ask SO for help understanding my crash report, but (a) I can learn a lot about reading crash reports from the experts here, and (b), I realize that I don't understand as much about navigation flow as I hoped (this part is specific to the crash report below I think).

So I'm hoping that someone has come across the same issue and can help me understand why my app is crashing.

It only crashes sometimes, which is beyond me as to why it is intermittent. However, when it does crash, it crashes at the same place, with the same stack trace (shown below).

Now I see that it is crashing in cmdPressed (there's a lot of code in this method), but it's hard for me to understand anything deeper than that.

From reading the crash report below, does anyone have any advice as to why my app is crashing??? And why it might be inconsistent?

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)

Any advice is greatly appreciated. Thanks!!!

like image 579
Brett Avatar asked May 01 '13 17:05

Brett


1 Answers

I know this is late and also I am not sure if this will solve your problem or not. But when I faced this issue (related with loadViewIfRequired) and struggled a lot because in my case also it was crashing sometimes only. I was calling [UITableViewController tableView] from outside of my tableview controller class which was getting called before loading the tableview. As my tableView wasn't loaded properly so my UITableViewController class was trying to call loadViewIfRequired API and which was calling ViewDidLoad on other thread (not in main thread). I fixed this by not calling [UITableViewController tableView] this before my tableviewcontroller gets loaded also I loaded that in main thread which fixed my problem.

like image 155
iOS_Developer Avatar answered Oct 06 '22 17:10

iOS_Developer