我有一個包含嵌套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. PHP - 方法的排序陣列通過嵌套數組值
- 9. 排序的NSArray含有字典的陣列 - 排序按「日期」鍵
- 10. 按屬性對嵌套數組排序
- 11. 按值排序嵌套數組?
- 12. 如何排序嵌套hashmaps?
- 13. 如何按列嵌套在JSON中篩選/排序OpenUI5 Grid?
- 14. MongoDB按平均組合數字或嵌套子陣列進行排序
- 15. 並排排列兩個NSArrays
- 16. 排序錨不排序嵌套列表
- 17. 排序嵌套列表
- 18. 排序由嵌套列表
- 19. 排序嵌套Markdown列表?
- 20. 如何重新排列嵌套數組?
- 21. NSOutLineView嵌套NSArray
- 22. 嵌套陣列
- 23. 如何排序嵌套JavaScript數組
- 24. 的NSArray NSArrays的:獲取包含數組
- 25. indexOfPath嵌套的NSArray
- 26. 按字母順序排列NSArray
- 27. 按字母順序排列NSArray
- 28. NSArray不按數字順序排序
- 29. 排序基於嵌套數組列表
- 30. 如何將對象的NSArray排序爲按字母順序排列的NSDictionary?
@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