2012-02-08 4 views
13

私はNSMutableArrayから[NSNull Null]オブジェクトを削除するにはどうしたらいいですか?

[mutArrSkills addObject:[NSNull null]]; 

によって追加ヌルオブジェクトを削除する必要があり、私は反復する必要がありますか? NSMutableArrayからすべてのnull値を削除する関数はありますか?

反復する必要がある場合、どうすればよいですか?

+1

removeObjectIdenticalToも配列を変換しようとしています。なぜあなたは自分自身を評価しないのですか? –

答えて

30

NULL値を削除するには

[mutArrSkills removeObjectIdenticalTo:[NSNull null]]; 

を次のようにあなたは、NSMutableArray年代removeObjectIdenticalTo:メソッドを使用することができます。反復する必要はありません。

+0

確かにあなたは確かですか?オブジェクトのアドレスが同じであれば、オブジェクトは同一と見なされるからではありません。 '[NSNull null]!= [NSNull null]' ... – Nekto

+0

はい、この場合、 '[mutArrSkills addObject:[NSNull null]];によって追加される要素は以下のようになります。その呼び出しで削除されました。 – Ilanchezhian

+0

はい。これはうまく機能しています – Heena

1

removeObjectIdenticalTo:

アレイに指定されたオブジェクトのすべてのオカレンスを削除します。

ディスカッション この方法はindexOfObjectIdenticalTo使用しています:マッチを見つけるための方法を、次にremoveObjectAtIndexを使用してそれらを削除し:.したがって、一致はオブジェクトアドレスを使用して決定されます。配列にオブジェクトが含まれていない場合、メソッドは何の効果もありません(コンテンツを検索するオーバーヘッドが発生します)。

+0

確かにあなたは確かですか?オブジェクトのアドレスが同じであれば、オブジェクトは同一と見なされるからではありません。あなたが知っておかなければならないように、 '[NSNull null]!= [NSNull null]' ... – Nekto

+0

@Nekto plsは私の答えをダウンさせます。 – sElanthiraiyan

-1

このように繰り返すことができます。

for(int i=0,i<[mutArrSkills count]; i++) 
{ 
    if([[mutArrSkills objectAtIndex:i] isKindOfClass:[NSNull Class]]) 
    { 
    [mutArrSkills removeObjectAtIndex:i]; 
    } 
} 
+2

配列に2つの連続したNSNullオブジェクトがある場合は、まったく動作しません。 – gnasher729

1

あなたは、私はこのことができます願ってい

NSNull *nullValue = [NSNull null]; 

[mutArrSkills removeObjectIdenticalTo:nullValue]; 

、これをやって試すことができます。

関連する問題