如何从NSMutableArray iPhone应用程序中查找特定对象?

时间:2012-08-09 15:27:58

标签: iphone ios object nsmutablearray

我在NSMutableArray中存储了许多值,例如@"New"@"Old"@"Future"NSMutablArray有100多个对象。我需要从数组中找到@"New"个对象。有谁可以帮我解决这个问题?提前谢谢。

4 个答案:

答案 0 :(得分:13)

这将是最经济[测试]的技巧:

[myArray filteredArrayUsingPredicate:[NSPredicate
   predicateWithFormat:@"self == %@", @"New"]];

答案 1 :(得分:3)

Gopinath如果您添加了@"New"之后的常量字符串

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

将成为

的伎俩
NSString *str1 = @"New";
NSString *str2 = @"New";

然后str1str2指向同一个对象。
如果你知道你正在搜索的字符串那么是否需要找到它? Mundi的答案也很好。

答案 2 :(得分: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来获取所有匹配项的索引。

答案 3 :(得分:0)

我建议使用谓词块

过滤数组
[array filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(id evaluatedObject, NSDictionary * bindings){
    [evaluatedObject isEqual:anObject];
}]];