2011-08-24 60 views
0

我有一個NSMutableArray的是結構如下:如何創建NSMutableArray的查詢和打印出來的結果嗎?

{ 
    { 
     AccountNumber:Test1 
     Type: Electricity 
    } 

    { 
     AccountNumber:Test2 
     Type: Water 
    }  

    { 
     AccountNumber:Test3 
     Type: Water 
    } 
} 

如何打印出在水中類型賬號?

我已經試過情況如下:

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

但我不知道如何做到這一點。

回答

2

假設數組中的每個項目是NSDictionary中,所有的鍵/值NSString的,你可以做這樣的事情:

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

退房NSPredicate。它將允許您從本質上定義一個查詢並將其應用於您的數組以過濾結果。這比遍歷數組的迭代循環要快得多,可以找到你正在尋找的東西。對於你的榜樣,你只需要做到以下幾點:

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