我有一个NSMutableArray,结构如下:
{
{
AccountNumber:Test1
Type: Electricity
}
{
AccountNumber:Test2
Type: Water
}
{
AccountNumber:Test3
Type: Water
}
}
如何打印出Water类型的帐号?
我的尝试如下:
- (NSUInteger)indexOfObjectIdenticalTo:(id)data{ return data; }
但我不明白该怎么做。
答案 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"]);
}
}