我在NSMutableArray
中存储了许多值,例如@"New"
,@"Old"
,@"Future"
。 NSMutablArray
有100多个对象。我需要从数组中找到@"New"
个对象。有谁可以帮我解决这个问题?提前谢谢。
答案 0 :(得分:13)
这将是最经济[测试]的技巧:
[myArray filteredArrayUsingPredicate:[NSPredicate
predicateWithFormat:@"self == %@", @"New"]];
答案 1 :(得分:3)
Gopinath如果您添加了@"New"
之后的常量字符串
int index = [array indexOfObject:@"New"];
将成为
的伎俩NSString *str1 = @"New";
NSString *str2 = @"New";
然后str1
和str2
指向同一个对象。
如果你知道你正在搜索的字符串那么是否需要找到它?
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];
}]];