2016-11-20 22 views
0

ユーザーがメールでクラッシュしました。同じクラッシュを複数回受信しました。ユーザーはクラッシュをどのようにして起こったのか説明したコメントを私に送ることができますが、誰もこのことについて何も言わなかった。だから、基本的に、私は11月に9回しか起こらなかった再現方法がわからないバグです。NSCollectionView(NSRangeException)で奇妙なクラッシュが発生する

このコレクションビューは私のプログラムの重要な部分です。したがって、ほとんどのユーザーが常にこの機能を使用しているため、このクラッシュはほとんど起こりません。 macOSのバージョンに関連するパターンはありません(異なるバージョンで起こりました)。

Application Specific Information: 
*** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayI objectAtIndex:]: index 0 beyond bounds for empty array' 
terminating with uncaught exception of type NSException 
abort() called 

Application Specific Backtrace 1: 
0 CoreFoundation 0x00007fff8fc7803c __exceptionPreprocess 172 
1 libobjc.A.dylib 0x00007fff88e2876e objc_exception_throw 43 
2 CoreFoundation 0x00007fff8fb4fbce -[__NSArrayI objectAtIndex:] 190 
3 AppKit 0x00007fff8ea54f3e -[NSCollectionViewItem _copyConnectionsOfObject:prototypeItem:toObject:item:] 750 
4 AppKit 0x00007fff8ea54c38 -[NSCollectionViewItem _copyConnectionsToItem:] 95 
5 AppKit 0x00007fff8ea52e71 -[NSCollectionViewItem copyWithZone:] 487 
6 AppKit 0x00007fff8ea52c20 -[NSCollectionView newItemForRepresentedObject:] 68 
7 AppKit 0x00007fff8ea527b3 -[NSCollectionView _getItemsToDisplay] 1168 
8 AppKit 0x00007fff8ea52205 -[NSCollectionView setContent:] 217 
9 MyApp 0x000000010e3ae9d3 MyApp 117203 
10 libdispatch.dylib 0x00007fff8cc2e323 _dispatch_call_block_and_release 12 
11 libdispatch.dylib 0x00007fff8cc29c13 _dispatch_client_callout 8 
12 libdispatch.dylib 0x00007fff8cc35cbf _dispatch_main_queue_callback_4CF 861 
13 CoreFoundation 0x00007fff8fbcb3f9 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ 9 
14 CoreFoundation 0x00007fff8fb8668f __CFRunLoopRun 2159 
15 CoreFoundation 0x00007fff8fb85bd8 CFRunLoopRunSpecific 296 
16 HIToolbox 0x00007fff8bae056f RunCurrentEventLoopInMode 235 
17 HIToolbox 0x00007fff8bae02ea ReceiveNextEventCommon 431 
18 HIToolbox 0x00007fff8bae012b _BlockUntilNextEventMatchingListInModeWithFilter 71 
19 AppKit 0x00007fff8e6f49bb _DPSNextEvent 978 
20 AppKit 0x00007fff8e6f3f68 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] 346 
21 AppKit 0x00007fff8e6e9bf3 -[NSApplication run] 594 
22 AppKit 0x00007fff8e666354 NSApplicationMain 1832 
23 libdyld.dylib 0x00007fff8ae8a5c9 start 1 

私は逃したことは詳細がある場合は、質問して自由に落ちたが、私はそれを言うことは非常に難しいバグを再現することができないことを考慮します。

+0

コレクションビューでは、データソースメソッドを追加してください。重要なペアはcollectionView:numberOfItemsInSection:とcollectionView:cellForItemAtIndexPath:です。これらの両方が同じ状態で同じ配列を使用することが重要です。 – danh

+0

これはmacOSのコンテンツ配列レイアウトですが、これらの関数は使用されていません。コレクションビューの内容は 'setContent:'関数でのみ変更されます。 – vitormm

答えて

0

あなたのデータはあなたのインデックス番号を超えています。動的にしてください。私はあなたが静的な価値を返すと思います。

+0

私はあなたの答えを正しく理解しているかわかりません。私は静的な値を返すわけではありません。上記のコレクションビューは正しく動作していますが、その内容は 'setContent:'関数を呼び出すときのユーザアクションに応じて変化します。 – vitormm

+0

は、ここで3つのコレクションビューメソッドをすべて共有します。それから私はそれを解決します。 –

+0

私は質問のコメントで、MacOSからコレクションビューのコンテンツ配列レイアウトを使用しています。つまり、コレクションビューメソッドはありません。私は 'setContent:'関数を使ってコレクションビューの内容を変更します。 – vitormm

関連する問題