1

こんにちは私は200個ほどのオブジェクトを保持する配列を持っています。これらの各オブジェクトは、混合型(int、strings、bools)の6つのフィールドを持つ別の配列です。

2つの質問...

配列を検索して、特定の要素を持つオブジェクトを見つけることができますか。つまり、要素「A」=TRUEを持つすべてのオブジェクトを見つけることができます。

オブジェクトの1つから単一の要素を更新するにはどうすればよいですか?そのオブジェクトを(親配列から見つけて、なぜ最初の質問をしたのか)、それを削除してから、更新されたフィールドを持つ新しいオブジェクトを追加する必要がありますか?少しやり過ぎのようですが、これは私がする必要があることですか?とにかく、その単一の要素を更新するだけですか?

4

1 に答える 1

1

はい、それを検索できます。値を変更する場合は、検索する必要があります。indexOfObjectPassingTestを使用してオブジェクトを見つけることができます。投稿された例では、次のように使用します(オブジェクトがそれぞれ辞書であり、フィールドの1つが「A」であると仮定します)。

NSUInteger indx =[myArray indexOfObjectPassingTest:^BOOL(id obj, NSUInteger idx, BOOL *stop) {
        return [[obj valueForKey:@"A"] isEqualToNumber:[NSNumber numberWithBool:TRUE]];
    }];

indxは、配列内のそのテストに合格したオブジェクトのインデックスになります。

于 2012-05-20T15:41:46.347 に答える