我有一个包含嵌套NSArrays的NSArray。我正在寻找一种方法根据嵌套数组的对象数按升序对父数组进行排序。因此,如果[array1 count]
是4,[array2 count]
是2和[array3 count]
是9,我会得到:数组2,数组1,ARRAY3 ...如何按阵列数排序嵌套NSArrays的NSArray?
1
A
回答
9
有一些解决方案,其中之一是:
NSSortDescriptor *sd = [NSSortDescriptor sortDescriptorWithKey:@"@count"
ascending:YES];
NSArray *sds = [NSArray arrayWithObject:sd];
NSArray *sortedArray = [array sortedArrayUsingDescriptors:sds];
1
static NSInteger MONSortObjectsAscendingByCount(id lhs, id rhs, void* ignored) {
/* error checking omitted */
const NSUInteger lhsCount = [lhs count];
const NSUInteger rhsCount = [rhs count];
if (lhsCount < rhsCount) {
return NSOrderedAscending;
}
else if (lhsCount > rhsCount) {
return NSOrderedDescending;
}
else {
return NSOrderedSame;
}
}
/* use if mutable, and you wnat it sorted in place */
- (void)sortUsingFunction:(NSInteger (*)(id, id, void *))compare context:(void *)context;
/* else use */
- (NSArray *)sortedArrayUsingFunction:(NSInteger (*)(id, id, void *))compare context:(void *)context;
+1
名称不是以“MON”开头的函数?你是谁,你对贾斯汀做了什么? – 2011-04-30 00:20:41
+0
ugggghhhhhhhhhh !!!!!!! = p贾斯汀今天头痛,并且构建完成。感谢您指出 - 我已经修复了它=) – justin 2011-04-30 00:29:46
相关问题
- 1. 嵌套排序NSArray
- 2. 如何使用嵌套的NSArray对NSArray进行排序
- 3. 如何使用嵌套NSArray对NSArray进行排序
- 4. 排序嵌套的JSON阵列
- 5. 如何按字母顺序排列NSArray?
- 6. 按嵌套嵌套数组大小排序嵌套地图
- 7. AS3阵列按钮嵌套
- 8. 按值排序嵌套数组?
- 9. 如何排序嵌套hashmaps?
- 10. 如何按列嵌套在JSON中筛选/排序OpenUI5 Grid?
- 11. 排序嵌套Markdown列表?
- 12. 排序由嵌套列表
- 13. 排序嵌套列表
- 14. 如何重新排列嵌套数组?
- 15. 的NSArray NSArrays的:获取包含数组
- 16. NSOutLineView嵌套NSArray
- 17. 按字母顺序排列NSArray
- 18. NSArray不按数字顺序排序
- 19. 排序基于嵌套数组列表
- 20. 删除阵列嵌套一个NSArray的(目标C)
- 21. 弹性数据按嵌套对象列表属性排序
- 22. 如何排序键的NSArray?
- 23. 排序PHP JSON嵌套数组按升序排列与usort根据键值
- 24. 按键值排序阵列
- 25. 红宝石排序显示的嵌套阵列
- 26. 按值排序复杂数组阵列
- 27. 嵌套多阵列
- 28. 重塑numpy的阵列/嵌套阵列
- 29. Spring JPA REST按嵌套属性排序
- 30. Nhibernate按嵌套对象属性排序
@Sam事实上,您可以随时使用“@ count”收集操作符为符合KVC的集合。 – 2011-04-30 00:22:29
啊,我的道歉。我没有意识到/误读了你的代码。很酷! – Sam 2011-04-30 00:24:54
工作的很好!..我之前尝试了这个问题,但我正在使用'@“count”'作为键,它正在崩溃......这是什么秘密'@“@ count”'??? – KDaker 2011-04-30 11:26:09