2012-11-10 10 views
15

私はUITableviewで作業しています。私はtableview cellに画像、タイトル、日付、詳細ビューへの詳細なview.in連続プロセスのテーブルビューにナビゲートし、その逆の場合もあります。ナビゲーションを行った後、私のUITableviewセルをクリックするとアプリケーションがクラッシュします。- [__ NSPlaceholderArray initWithObjects:count:]:オブジェクトからnilオブジェクトを挿入しようとしています。 ''

+1

私たちはいくつかの助けを提供できるようにあなたのコードを投稿してください。 –

答えて

26

NSArrayは、すべての要素のオブジェクトを保持するように設計されています。nilは、NSArrayインデックスでは決して有効な値ではありません。

このエラーは、プログラムで長さがゼロでない配列が作成され、最初の要素がnilであることを示しています。


のHunch:あなたがに相当リテラル、何か宣言している:もちろん

NSNumber * n = nil; 
NSArray * a = @[n]; // << runtime error creating this array 

を、あなたのプログラムではなく、直接-[NSArray initWithObjects:count:]を呼び出すことができます。

0

この種のクラッシュを避ける最良の方法は、nil引数を受け取ることができるNSSetを使用し、「[someSet allObjects]」を使用して「nil valuesから整理済み」配列を使用することです。

それ以外は、セットの作成を短くするマクロを作るというアイデアを取りました。 (出典:Objective C literals for NSSet and NSOrderedSet?

関連する問題