2012-11-13 72 views
1

我有下面的字典,我想訪問特定國家的所有城市。所以如果我選擇下面的美國,我想進入達拉斯,休斯敦。例如,我有以下功能,但不知道如何獲取所有城市的國家。如何在以下字典中獲取美國的所有城市?

-(NSArray*) fetchCitiesFromLocationDictionary:(NSMutableDictionary *)locationDictionary usingCountry:(NSString *)country 
{ 


} 


{ 
    509f3a914d026b589ba3a090 =  { 
     coordinates =   { 
      latitude = "29.76429"; 
      longitude = "-95.3837"; 
     }; 
     country = USA; 
     id = 509f3a914d026b589ba3a090; 
     name = Houston; 
     state = Texas; 
    }; 
    509f3b3a4d026b589ba3a091 =  { 
     coordinates =   { 
      latitude = "3.138722"; 
      longitude = "101.686849"; 
     }; 
     country = Malaysia; 
     id = 509f3b3a4d026b589ba3a091; 
     name = "Kuala Lumpur"; 
    }; 
    509f475b4d026b589ba3a093 =  { 
     coordinates =   { 
      latitude = "32.803468"; 
      longitude = "-96.769879"; 
     }; 
     country = USA; 
     id = 509f475b4d026b589ba3a093; 
     name = Dallas; 
     state = Texas; 
    }; 
} 

回答

1

嘗試這樣:

NSDictionary *dictionary = [NSDictionary dictionary]; 
NSMutableArray *cities = [NSMutableArray array]; 
for (NSDictionary *individualDictionary in dictionary) 
{ 
    if ([[individualDictionary objectForKey:@"country"] isEqualToString:@"USA"]) 
     [cities addObject:[individualDictionary objectForKey:@"name"]]; 
} 
+0

真棒謝謝..im仍然非常新的ios開發。非常感謝 – milof

1

的辦法,我讀這篇文章,你可以通過(使用NSDictionary.allValues)值迭代,並且如果value.country =美國,再加入value.name給您回覆列表(NSMutableArray的)。

+0

謝謝。我還是新的。非常感謝 – milof

+0

不知道,但我給你一個:) – milof

1

兩個答案都不錯,但ID提出了一個優越的一個(IMO:d)

1線

id matches = [[dictOfDicts allValues] filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"country=='USA'"]]; 

工作示例

int main(int argc, char *argv[]) { 
    @autoreleasepool { 
     id dictOfDicts = @{@"1":@{@"country":@"USA", @"name":@"test"}, @"2":@{@"country":@"azUSA", @"name":@"test"}, @"3":@{@"country":@"USA", @"name":@"test"}, @"4":@{@"country":@"adsaUSA", @"name":@"test"}}; 

     NSLog(@"%@", [[dictOfDicts allValues] filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"country=='USA'"]]); 
    } 
} 
+0

哇這是一個很棒的方法 – milof

相關問題