14

私のアプリでは、次のログで多くのクラッシュが頻繁に報告されていますが、いくつかのテスト デバイスと iOS バージョンでも再現できません。そのため、Xcode で理由を見つける方法はありません。トレースにはコードにつながるステップがないため、コードの起源を見つける方法を想像できません。アプリ自体は非常に複雑で、もちろん多くの Scroll View も埋め込まれて使用されています。

どこから始めればいいのか、誰か考えがありますか?または、誰かが以前に同様の問題を抱えていましたか?

どんな助けにもとても感謝しています!

よろしく、フロリアン

OS Version:      iPhone OS 6.0.1 (10A523)
Report Version:  104

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

Thread 0 Crashed:
0   libobjc.A.dylib                     0x392e65b0 objc_msgSend + 16
1   UIKit                               0x35a839f7 -[UIScrollView(UIScrollViewInternal)  _scrollViewAnimationEnded:finished:] + 135
2   UIKit                               0x35a838e9 -[UIAnimator stopAnimation:] + 469
3   UIKit                               0x35b1e257 -[UIAnimator(Static) _advanceAnimationsOfType:withTimestamp:] + 295
4   UIKit                               0x35a83381 -[UIAnimator(Static) _LCDHeartbeatCallback:] + 53
5   QuartzCore                          0x323d3071 CA::Display::DisplayLink::dispatch(unsigned long long, unsigned long long) + 161
6   QuartzCore                          0x323d2fc9 CA::Display::IOMFBDisplayLink::callback(__IOMobileFramebuffer*, unsigned long long, unsigned long long, unsigned long long, void*) + 65
7   IOMobileFramebuffer                 0x340befd7 IOMobileFramebufferVsyncNotifyFunc + 155
8   IOKit                               0x35ee8449 IODispatchCalloutFromCFMessage + 193
9   CoreFoundation                      0x339605db __CFMachPortPerform + 119
10  CoreFoundation                      0x3396b173 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 35
11  CoreFoundation                      0x3396b117 __CFRunLoopDoSource1 + 139
12  CoreFoundation                      0x33969f99 __CFRunLoopRun + 1385
13  CoreFoundation                      0x338dcebd CFRunLoopRunSpecific + 357
14  CoreFoundation                      0x338dcd49 CFRunLoopRunInMode + 105
15  GraphicsServices                    0x33f222eb GSEventRunModal + 75
16  UIKit                               0x3596a2f9 UIApplicationMain + 1121
17                                 0x00005233 main (main.m:14)
4

3 に答える 3

17

私も同じ事故に遭いました。[controller setContentOffset:newPt animation:YES] でコントローラーをアニメーション化しており、コントローラーに scrollViewDidScroll デリゲート メソッドを実装したことが原因であることが判明しました。画面上のボタンをクリックすると、別のコントローラーに進むことができるため、アニメーションの進行中にユーザーがボタンをクリックすると、元のポスターがクラッシュしました。解決策は、dealloc でデリゲートを nil に設定するだけです。

于 2013-07-08T21:55:06.460 に答える
2

シグナルは、SIGSEGVプロセスが無効な仮想メモリ参照またはセグメンテーション違反を行うと、プロセスに送信されます。(ウィキペディア参照)

したがって、おそらく解放されたオブジェクトにアクセスしています。これはアニメーション中なので、アニメーションが終了した後に呼び出されるセレクターを定義したのでしょうか。それは私が探し始めていたでしょう。

于 2013-01-12T14:10:53.070 に答える
2

このスレッドをご覧になることをお勧めします:アニメーション化された UITableView/UIScrollView setContentOffset:animated: をキャンセルする方法はありますか?

その議論は、スクロールビューがアニメーション終了メッセージを送信する前に割り当てが解除されたデリゲートである可能性があることを示唆しています。

于 2013-01-12T14:13:31.007 に答える