2012-03-30 13 views
1

NSArrayのNSMutableArrayが内部にあります。これは私の現在の構造です:NSArrayを含むNSMutableArrayからオブジェクトを削除します。

Paused index (
     (
      0, 
      3579 
     ), 
     (
      1, 
      3538 
     ) 
    ) 

どのように配列を検索してオブジェクト3538を削除するのですか?私の期待される結果は:

Paused index (
     (
      0, 
      3579 
     ) 
    ) 

外部配列のインデックスを取得するにはどうすればよいですか?私はすでに検索を行うことができますが、そのインデックス内のオブジェクトをどのように削除できますか?

+0

検索の実装方法を尋ねていますか?誤解を招くような質問を申し訳ありません。 – tronbabylove

+0

私はオブジェクトを削除したい、私はすでにそれを削除したい今検索を行います。 – Diffy

+0

[yourMutableArray removeObjectAtIndex:theIndex]; – tronbabylove

答えて

1

これは非常に単純な方法です。

NSArray *firstArray = [NSArray arrayWithObjects:[NSNumber numberWithInt:100],[NSNumber numberWithInt:1000], nil]; 
NSArray *secondArray = [NSArray arrayWithObjects:[NSNumber numberWithInt:100],[NSNumber numberWithInt:5000], nil]; 

NSMutableArray *arrayWithArray = [NSMutableArray arrayWithObjects:firstArray,secondArray,nil]; 
int i = 0; 

for (NSArray *innerArray in arrayWithArray) 
{ 
    if ([innerArray containsObject:[NSNumber numberWithInt:5000]]) 
    { 
     break; 
    } 
    i++; 

} 
NSLog(@"Index of object %d",i); 
[arrayWithArray removeObjectAtIndex:i]; 

その他のインテリジェントな方法があるはずです。

編集: これは少し良いと思います。

int i = [arrayWithArray indexOfObjectPassingTest:^BOOL(id element,NSUInteger idx,BOOL *stop) 
    { 
     return [(NSArray *)element containsObject:[NSNumber numberWithInt:5000]]; 
    }]; 

    NSLog(@"Index of object %d",i); 
    if (i >= 0 && i < [arrayWithArray count]) 
    { 
     [arrayWithArray removeObjectAtIndex:i]; 
    } 
+0

投票の理由は何ですか? – Vignesh

+0

なぜfor-in文とカウンタiを同時に使用しますか? for(;;)ステートメントは、この状況に適していますか?私はそれがobjective-Cでどのように動作するのかはわかりませんが、for-inステートメントは一般的に順序なしで各要素を調べる可能性があるので、他の言語では悪い習慣です – Gargo

+0

ですか?私は決して知らない。客観的には、それは常に注文に従っています。しかし、確認する方法はありません。あなたが何を意味するか。ありがとうございました。私はそれを念頭に置いておきます。 – Vignesh

0

このアレイ

Array_Paused_index (

(
     0, 
     3579 
    ), 
    (
     1, 
     3538 
    ) 

)を有するよう

もう一つのアレイを取る

アレイ= [Array_Paused_index objectAtIndex:0]。

[Array_Paused_index removeObjectAtIndex:1]

結果は

アレイ

(

    0, 

    3579 

) 

OR第二の方法であろう。

関連する問題