2015-08-14 66 views
0

訂單我有NSMutableArray存儲的詞典需要被整理出....排序取決於存在於另一個陣列字段....重新排列的NSMutableArray根據從第二陣列

實施例:

陣列1 ==>紅色-1,白色-2,綠色-3,陣列2 ==>綠色,紅色, 白色

結果應該是數組3 =>綠色-3,紅色-1,白色-2 。(項目 數組1根據數組2中的順序排序)。

+0

你爲什麼不建立它在雙'for'?對於數組2中的每個元素,您可以在數組1中找到相應的元素,然後將其添加到數組3中。 – Templar

+0

是啊....我做到了,但有些如何感覺它不是最好的方式......可能有很好的方法。 ...很簡單,然後有兩個for循環....如果蘋果提供任何東西....即使蘋果的東西,我試圖找出,但沒有發現任何... – user2813740

+0

另外,你可以用一個單一的數組替換字典,然後您可以即時訪問每個元素的值。 – Templar

回答

0

如果你的第一個數組是這樣的:[{@"Red": @1}, {@"White": 2}, {@"Green": 3}],接下來的辦法應該工作:

NSArray* array3 = [array1 sortedArrayUsingComparator:^NSComparisonResult(NSDictionary* dict1, NSDictionary* dict2) { 
     NSUInteger idx1 = [array2 indexOfObject:[dict1 allKeys][0]]; 
     NSUInteger idx2 = [array2 indexOfObject:[dict2 allKeys][0]]; 

     if(idx1 < idx2) return NSOrderedAscending; 
     if(idx2 > idx1) return NSOrderedDescending; 
     return NSOrderedSame; 
    }];