我使用了sortUsingSelector来对自定义对象的NSMutableArray进行排序。
现在我正在尝试对包含自定义对象的NSMutableArrays的NSMutableArray进行排序。
你可以在NSMutableArray上使用sortUsingSelector,还是仅适用于自定义类?
答案 0 :(得分:1)
如果你可以使用块,那么使用sortUsingComparator:
是最简单的方法。否则,您需要使用sortUsingFunction:
。
在任何一种情况下,您都需要编写一个自定义块或函数,它将两个数组作为参数,并根据其内容返回一个排序顺序(我不确定您使用什么逻辑来确定数组A或者数组B是“之前”或“之后”另一个)。
你会做类似的事情:
static NSInteger MySorterFunc(id leftArray, id rightArray, void *context) {
... return ascending/descending/same based on leftArray vs. rightArray ...
}
然后:
[myArrayOfArrays sortUsingFunction: MySorterFunc context: NULL];
答案 1 :(得分:0)
它将选择器发送到对象,因此您需要使用其他排序器之一。可能是sortUsingFunction:context:。
答案 2 :(得分:0)
当然你也可以使用sortUsingSelector:
,只要它响应你想要使用的选择器,数组中的对象是什么并不重要。但NSMutableArray
和NSArray
本身没有任何比较方法,因此您必须使用类别扩展它们以实现比较方法。
所以你可能想要使用其他答案中指出的其他排序方法。使用sortUsingSelector:
并非不可能,但它相当不方便,大多数人(包括我)会认为为此编写类别是不好的风格。