如何按数组计数对NSArray的嵌套NSArray进行排序?

KDa*_*ker 1 iphone objective-c nsmutablearray nsarray ios

我有一个包含嵌套NSArrays的NSArray.我正在寻找一种方法来根据嵌套数组的对象数按升序对父数组进行排序.所以如果[array1 count]是4,[array2 count]是2并且[array3 count]是9,我会得到:array2,array1,array3 ......

小智 9

有一些解决方案,其中之一是:

NSSortDescriptor *sd = [NSSortDescriptor sortDescriptorWithKey:@"@count"
                                                     ascending:YES];
NSArray *sds = [NSArray arrayWithObject:sd];
NSArray *sortedArray = [array sortedArrayUsingDescriptors:sds];
Run Code Online (Sandbox Code Playgroud)

  • @KDaker`NSArray`没有名为`count`的KVC兼容密钥.有一个名为`-count`的实例方法,但它不是KVC意义上的密钥.也就是说,在Cocoa集合中,您可以使用称为[集合运算符]的特殊键路径(http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/KeyValueCoding/Articles/CollectionOperators.html),并且@count`就是其中之一. (3认同)