如何使用包含对象的有序键的另一个NSArray对NSArray对象进行排序?

时间:2012-01-20 04:57:24

标签: iphone sorting nsarray

例如,如果我有一个对象:

@interface MyObject
{
    __id;
    __data;
}

我有一个这样的对象的NSArray:

id=4
data=Apple
id=5
data=Banana
id=6
data=Orange

我还有一个NSArray的ids:

{"5", "4", "6"}

现在我想按ID在第二个数组中按顺序对对象数组进行排序,结果应为:

id=5
data=Banana
id=4
data=Apple
id=6
data=Orange

是否可以(在ObjC for iPhone中)?什么是最有效的方式?

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用NSArray类的- (NSArray *)sortedArrayUsingComparator:(NSComparator)cmptr函数。

你应该编写自己的比较器块,它将根据id数组在id数组中的位置返回排序 - 即当idA比数组的开头更远时返回NSOrderedAscending而不是idB。

希望这有帮助。