2

NSMutableArray特定のインデックスで別のコンテンツを含むを作成しようとしています。

initWithArray:前の配列のインデックスに何かがある場合は新しい配列を初期化し、そうでない場合はプレーンで初期化していますinit

このコードは機能しませんが、そこからアイデアを得ることができるはずです:

NSMutableArray *typeCourseCutId;
if([self.typeCourseCut objectAtIndex:typeCourseIndex] != nil){
    typeCourseCutId = [[NSMutableArray alloc]initWithArray:[self.typeCourseCut objectAtIndex:typeCourseIndex]];
} else {
    typeCourseCutId = [[NSMutableArray alloc]init];
}

この種のテストの解決策はありますか?

4

4 に答える 4

6

NSNullコレクションで null インジケーターとして使用するために特別に作成された、特別なクラスが呼び出されます。

このクラスは、コレクション オブジェクト (値を許可しない) の値NSNullを表すために使用されるシングルトン オブジェクトを定義します。nullnil

if([self.typeCourseCut objectAtIndex:typeCourseIndex] != [NSNull null]) ...
于 2012-08-23T18:57:25.617 に答える
3

配列の数を確認できます。取得しているインデックスよりカウントが大きい場合は、そのインデックスにオブジェクトが存在することを意味します。

また、あなたがオブジェクトself.typeCourseCutの配列であることを確認してください。そうしないと、クラッシュします。NSArrayinitWithArray:

また、空のオブジェクトを次のように配列に追加することもできます。[yourArray addObject:[NSNull null]]; 最も重要なのは、インデックス 1 にオブジェクトがないと、インデックス 2 にオブジェクトを追加できないことです。

于 2012-08-23T19:03:18.220 に答える
2

配列は、どのインデックスでも nil であってはなりません。配列が構築される方法は、nil オブジェクトに到達するとすぐに構築されます。配列の終わりと見なされます。

nil オブジェクトを追加することも、既存のオブジェクトを nil に更新することもできません。

何かを「Null」スタイル オブジェクトに設定する必要がある場合は、代わりに NSNull を使用できます。これは、ほとんどの JSON パーサーが表示したいが null であるオブジェクトに対して行うことです。

于 2012-08-23T18:58:25.803 に答える