2016-12-15 10 views
1

UICollectionViewをスクロールしたときに発生するような、このクラッシュレポートがアプリから届きました。非常にまれに起こるクラッシュであり、Xcodeでキャプチャしたときにどのようなコードが原因で発生しているのかわかりません。私UICollectionViewは、細胞の3つの異なる種類で、本質的にUITableViewのように見える - でUIImageViewUILabelと1つにUILabelと1、および中AVPlayerUILabelと1- [CALayer setFrame:]クラッシュ

をこれは、クラッシュログです:。

-[__NSArrayM setBounds:]: unrecognized selector sent to instance 0x1744478c0 

Fatal Exception: NSInvalidArgumentException 
0 CoreFoundation     0x18ecb61c0 __exceptionPreprocess 
1 libobjc.A.dylib    0x18d6f055c objc_exception_throw 
2 CoreFoundation     0x18ecbd278 __methodDescriptionForSelector 
3 CoreFoundation     0x18ecba278 ___forwarding___ 
4 CoreFoundation     0x18ebb459c _CF_forwarding_prep_0 
5 QuartzCore      0x191fc625c -[CALayer setFrame:] 
6 QuartzCore      0x191fc2e64 CA::Layer::layout_if_needed(CA::Transaction*) 
7 QuartzCore      0x191fc2d24 CA::Layer::layout_and_display_if_needed(CA::Transaction*) 
8 QuartzCore      0x191f3f7ec CA::Context::commit_transaction(CA::Transaction*) 
9 QuartzCore      0x191f66c58 CA::Transaction::commit() 
10 MediaToolbox     0x195b5013c playerremote_Invalidate 
11 MediaToolbox     0x195bd5ca4 playerasync_InvalidateOnQueue 
12 libdispatch.dylib    0x18db411c0 _dispatch_client_callout 
13 libdispatch.dylib    0x18db4f444 _dispatch_queue_serial_drain 
14 libdispatch.dylib    0x18db449a8 _dispatch_queue_invoke 
15 libdispatch.dylib    0x18db4f940 _dispatch_queue_override_invoke 
16 libdispatch.dylib    0x18db5138c _dispatch_root_queue_drain 
17 libdispatch.dylib    0x18db510ec _dispatch_worker_thread3 
18 libsystem_pthread.dylib  0x18dd4a2b8 _pthread_wqthread 
19 libsystem_pthread.dylib  0x18dd49da4 start_wqthread 

どうすればこの問題を解決できますか?

+0

例外ブレークポイントを設定してクラッシュメソッドを追加できますか? –

+0

check https://www.natashatherobot.com/xcode-debugging-trick/ –

+0

これをデバッグするには、[zombies enabled](http://help.apple.com/xcode/mac/8.0/#/)でアプリを実行します。 devcef23c572)。 –

答えて

0

クラッシュレポートをシンボリックにすると、実際にメモリアドレスのダンプが変数にロードされ、このクラッシュの原因を特定できます。このディレクトリには、クラッシュレポートのデータを表すために必要なデバッグシンボルの参照があるため、このクラッシュを取得しているビルドのDSYMディレクトリが必要です。

+0

Xcodeにロードされ、クラッシュ時に作成されたすべてのスレッドがロードされるように記号を付けることができます。しかし、クラッシュの原因を特定するにはどうすればよいですか?私はメモリアドレスを見ることができません – Tometoyou

+0

はい、クラッシュレポートがシンボル化されているときは、メモリアドレス、スタック、変数などがすべてロードされ、通常のルーチンでデバッグすることができます。すべてのオブジェクト、変数、配列などを調べることができ、クラッシュを識別するのに役立ちます。 ' - [__ NSArrayM setBounds:]:インスタンス0x1744478c0'に送られたセレクタを認識できません。 'UICollectionView'または' UITableView'によってアクセスされるとき、配列は 'nil'であることが明らかです –

+0

どこにロードされますか?私はメモリアドレスやオブジェクトにアクセスするためのどこにも見えません! – Tometoyou