3

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

4

4 回答 4

13

这将做最经济的伎俩[测试]:

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

Gopinath 如果你像这样添加了常量@"New"字符串

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 回答