3

、、のNSMutableArrayよう@"New"に多くの値を格納しています。100以上のオブジェクトを持っています。配列からオブジェクトを見つける必要があります。誰かがこの問題を解決するのを手伝ってくれませんか?前もって感謝します。@"Old"@"Future"NSMutablArray@"New"

4

4 に答える 4

13

これは最も経済的にトリックを行います[テスト済み]:

[myArray filteredArrayUsingPredicate:[NSPredicate
   predicateWithFormat:@"self == %@", @"New"]];
于 2012-08-09T15:31:44.813 に答える
3

@"New"そのように定数文字列を追加した場合は Gopinath

int index = [array indexOfObject:@"New"];

次のようにトリックを行います

NSString *str1 = @"New";
NSString *str2 = @"New";

次にstr1str2同じオブジェクトを指します。
また、検索している文字列がわかっている場合、それを見つける必要はありますか?
ムンディの答えも良いです。

于 2012-08-09T15:46:47.200 に答える
1

オブジェクトの高速な列挙を実行しないのはなぜですか?

NSMutableArray *matchingObjects = [NSMutableArray array];
NSArray *objects = [NSArray arrayWithObjects:@"New", @"Old", @"Future", nil];
NSInteger count = 0;
for (NSString *string in objects) {
    if ([string isEqualToString:@"New"]) {
        [matchingObjects addObject:string];
    }
    count++;
}

この方法matchingObjectsには、テストに一致したすべてのオブジェクトが含まれており、countすべての一致のインデックスを取得するために使用できます。

于 2012-08-09T15:40:43.497 に答える
0

述語ブロックを使用して配列をフィルタリングすることをお勧めします

[array filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(id evaluatedObject, NSDictionary * bindings){
    [evaluatedObject isEqual:anObject];
}]];
于 2012-08-09T15:37:09.803 に答える