2013-05-01 104 views
6

我通常不會要問SO,以便了解我的崩潰報告,但(一)我可以學到很多關於閱讀從這裏專家崩潰報告,和(b),我認識到,我不太瞭解導航流程,正如我所希望的(這部分特定於我認爲的下面的崩潰報告)。iOS版 - 崩潰在loadViewIfRequired

所以我希望有人已經遇到了同樣的問題,可以幫助我瞭解爲什麼我的應用程序崩潰。

它只崩潰有時,這是超越我,爲什麼它是間歇性的。但是,當它崩潰時,它會在同一個地方崩潰,並具有相同的堆棧跟蹤(如下所示)。

現在我看到它在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,看看是否給你更多的信息。 – 2013-05-01 19:18:47

+0

它在presentModalViewController中崩潰,所以你可能會發送一些不好的東西。您應該發佈您收到的錯誤消息,因爲從您在此處顯示的內容中無法看到更深的內容。 – 2013-05-01 18:50:55

+0

請從'AppViewController'發佈代碼 – Nick 2015-01-26 22:17:38

回答

-3

嘗試添加此方法。希望這會幫助你。

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

     NSLog(@"Memory"); 
} 
0

我知道這是晚了,我也不知道這是否會解決您的問題。但是當我遇到這個問題(與loadViewIfRequired有關)並且掙扎了很多,因爲在我的情況下,它有時只是崩潰。我從我的tableview控制器類的外部調用[UITableViewController tableView],這是在加載tableview之前調用的。由於我的tableView沒有正確加載,所以我的UITableViewController類試圖調用loadViewIfRequired API,並且在其他線程(不在主線程中)調用ViewDidLoad。 我通過獲取加載還我裝在主線程其中固定我的問題不是要求[UITableViewController中的tableView]這個我tableviewcontroller之前解決了這個問題。

0

我面臨同樣的問題。對我而言,問題在於我更改了xib文件,但忘記連接所有以前的插座。