如何在NSMutableArray中创建查询并打印出结果?

时间:2011-08-24 02:28:29

标签: iphone objective-c ios xcode

我有一个NSMutableArray,结构如下:

{
    {
      AccountNumber:Test1
      Type: Electricity
    }

    {
      AccountNumber:Test2
      Type: Water
    }    

    {
      AccountNumber:Test3
      Type: Water
    }   
}

如何打印出Water类型的帐号?

我的尝试如下:

- (NSUInteger)indexOfObjectIdenticalTo:(id)data{ return data; }

但我不明白该怎么做。

2 个答案:

答案 0 :(得分:5)

结帐NSPredicate。它将允许您基本上定义查询并将其应用于您的数组以过滤结果。这比通过数组的迭代循环要快得多,以找到您要查找的内容。对于您的示例,您只需执行以下操作:

NSString *type = @"Water";
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"Type == %@", type];
NSArray *results = [myArray filteredArrayUsingPredicate:predicate];

答案 1 :(得分:2)

假设数组中的每个项都是NSDictionary,并且所有键/值都是NSStrings,你可以这样做:

for (NSDictionary *dict in myArray) {
    if ([[dict objectForKey:@"Type"] isEqualToString:@"Water"]) {
        NSLog(@"Account number %@", [dict objectForKey:@"AccountNumber"]);
    }
}