基于一个订购两个NSMutableArrays

我有两个NSMutableArrays。 第一个的内容是数字的,与第二个的内容配对:

First Array Second Array 45 Test45 3 Test3 1 Test1 10 Test10 20 Test20 

这是两个arrays的外观。 现在我怎么能这样命令他们,所以他们最终结果如下:

 First Array Second Array 1 Test1 3 Test3 10 Test10 20 Test20 45 Test45 

谢谢!

我将这两个数组放入一个字典作为键和值。 然后,您可以sorting第一个数组(作为字典中的键),并以相同的顺序快速访问字典的值。 请注意,这只有在第一个数组中的对象支持NSCopying时才有效,因为这就是NSDictionary工作原理。

下面的代码应该这样做。 这实际上很短,因为NSDictionary提供了一些不错的方便方法。

 // Put the two arrays into a dictionary as keys and values NSDictionary *dictionary = [NSDictionary dictionaryWithObjects:secondArray forKeys:firstArray]; // Sort the first array NSArray *sortedFirstArray = [[dictionary allKeys] sortedArrayUsingSelector:@selector(compare:)]; // Sort the second array based on the sorted first array NSArray *sortedSecondArray = [dictionary objectsForKeys:sortedFirstArray notFoundMarker:[NSNull null]]; 

而不是保持两个平行的数组,我会保持一个模型对象的数组。 第一个数组中的每个数字将是一个属性的值,第二个数组中的每个string将是另一个属性的值。 然后,您可以使用sorting描述符对一个或两个属性进行sorting 。

通常,在Cocoa和Cocoa Touch中,并行数组可以在模型对象保存工作的同时进行工作。 尽可能地把前者放在前者上面。