1

これは私のクラッシュ レポートで、これは iOS のバージョンとデバイスに関係ありません。また、SIGSEGV_ACCERR はメモリに関連するものです。この問題を解決するのを手伝ってください。以下のログを含むクラッシュレポートがたくさんあります

Date/Time:       2012-09-25 23:55:33 +0000
OS Version:      iPhone OS 5.1.1 (9B206)
Report Version:  104

Exception Type:  SIGSEGV
Exception Codes: SEGV_ACCERR at 0x60000008
Crashed Thread:  0

Thread 0 Crashed:
0   libobjc.A.dylib                     0x37734f78 objc_msgSend + 16
1   UIKit                               0x32e0c503 -[UINavigationController _startDeferredTransitionIfNeeded] + 251
2   UIKit                               0x32e568eb _popViewControllerNormal + 191
3   UIKit                               0x32e56719 -[UINavigationController _popViewControllerWithTransition:allowPoppingLast:] + 393
4   UIKit                               0x32e56c79 -[UINavigationController navigationBar:shouldPopItem:] + 153
5   UIKit                               0x32e56a8f -[UINavigationBar _popNavigationItemWithTransition:] + 99
6   UIKit                               0x32ea6247 -[UINavigationBar popNavigationItemAnimated:] + 123
7   UIKit                               0x32ea60d5 -[UINavigationBar _handleMouseUpAtPoint:] + 925
8   UIKit                               0x32ea5d33 -[UINavigationBar touchesEnded:withEvent:] + 83
9   UIKit                               0x32de192b -[UIWindow _sendTouchesForEvent:] + 319
10  UIKit                               0x32de1319 -[UIWindow sendEvent:] + 381
11  UIKit                               0x32dc7695 -[UIApplication sendEvent:] + 357
12  UIKit                               0x32dc6f3b _UIApplicationHandleEvent + 5827
13  GraphicsServices                    0x36f8622b PurpleEventCallback + 883
14  CoreFoundation                      0x35367523 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 39
15  CoreFoundation                      0x353674c5 __CFRunLoopDoSource1 + 141
16  CoreFoundation                      0x35366313 __CFRunLoopRun + 1371
17  CoreFoundation                      0x352e94a5 CFRunLoopRunSpecific + 301
18  CoreFoundation                      0x352e936d CFRunLoopRunInMode + 105
19  GraphicsServices                    0x36f85439 GSEventRunModal + 137
20  UIKit                               0x32df5cd5 UIApplicationMain + 1081
21  Myapp                               0x00003597 main (main.m:20)
4

1 に答える 1

14

の非常に簡単なグーグルは、SIGSEGVそれが何であるかを正確に教えてくれます(セグメンテーション違反を意味する信号)。これらのリンクは、なぜそれが起こるのかを教えてくれます。

スタック トレースから、メイン ループがナビゲーション バーのタッチを処理していることがわかります。これにより、pop遷移が発生します。ビュー コントローラーをポップしている間、不正なメモリ アクセスが原因でアプリがクラッシュします。

アクセスしようとしたアドレス (クラッシュの原因となった)0x60000008 も表示されます。

そのため、最初にデバッガーで再作成してみます。また、プッシュ/ポップされたView Controllerにログを追加して、クラッシュの原因を特定できるようにします。

これは、ナビゲーション コントローラーの「戻る」ボタンの 1 つを押した直接の結果であると推測できます。

そのため、ナビゲーション コントローラーにプッシュされるコントローラーをどのようにセットアップするかを調べ、ナビゲーション バーの使用方法も調査したいと思います (ポップするとクラッシュが発生するため)。

コア ライブラリでクラッシュが発生しているように見えます。スタック トレースにコードへの呼び出しがないように見えるため、コントローラーのセットアップにある必要があります。

于 2012-09-26T13:59:57.810 に答える