2014-09-06 29 views
0

我有一個數組,它有很多來自API的字典鍵。我的數組如下字典鍵值與數組一起使用

字典鍵陣列:

NSArray *arr = @[@"01", @"02", @"03"]; 

字典與鍵 - 值對

NSDictionary *dic = @{@"01": @"Hero", @"02" : @"Enemy", @"03" : @"Boss"}; 

基本上我想匹配對應於dictonary鍵不使用陣列數組值。我發現了一個關於它的獨裁,但我不想爲每個單元格使用for-loop(我有很多單元格)。我的解決方案就是這樣

for(NSString *item in arr) { 
     [convertedArr addObject:[dic valueForKey:item]]; 
    } 

    NSLog(@"%@", [convertedArr componentsJoinedByString:@","]); 

Asumme具有這樣的(1,2,3)的陣列和字典看起來像{1 = 「一」,2 = 「B」,3 = 「C」}我剛想給一個數組,它應該返回像這樣的字典值(「a」,「b」,「c」)

任何人都應該給我更好的方法,而不使用數組?謝謝。

+0

你是說你想在字典中找到與鍵數組匹配的值嗎? – 2014-09-06 09:56:26

+0

添加你想要的輸出? – preetam 2014-09-06 09:57:47

+0

它是*性能*你關心或者你想寫*少代碼*?你想擺脫*數組*或* for循環*?兩者都是可能的,但答案取決於你的目標是什麼。 – 2014-09-06 10:01:39

回答

1

您可以取代你的循環由

NSArray *convertedArr = [dic objectsForKeys:arr notFoundMarker:@""]; 

這至少更少的代碼。 (該notFoundMarker:加入數組中的所有鍵 中不存在的字典。您的代碼將在這種情況下崩潰 。)

,因爲它是一個庫 功能它可能執行略勝一籌。但是我懷疑這種差異很大,因爲在任何情況下,arr中的所有密鑰都需要使用字典 。

+0

謝謝!這就是我要的! – 2014-09-06 10:08:35

+0

@kayzersoze:不客氣! – 2014-09-06 10:45:14

+0

@ kayzersoze:我可以問你爲什麼「不接受」答案?請讓我知道是否有任何問題。 – 2014-09-06 13:14:25