我在Objective C中有一个多项目数组,其中每个项目都是一个包含4个项目的子数组。我需要根据子数组的一个值对主数组进行排序。
我怎样才能(快速)?
Array看起来像这样:
(
Marly,
"Avenida Caracas - Calle 51",
"4.637467,-74.066799",
a,
"10070.563466"
),
(
"Calle 76",
"Avenida Caracas - Calle 76",
"4.662918,-74.061198",
a,
"7250.832506"
),
(
Profamilia,
"Avenida Caracas - Calle 34",
"4.621341,-74.06976",
a,
"11853.104432"
),
(
"Avenida 39",
"Avenida Caracas - Calle 39",
"4.626816,-74.068687",
a,
"11243.556349"
)
答案 0 :(得分:3)
您可以使用任意数量的NSArray或NSMutableArray排序方法。如果您使用的是iOS 4.0或更高版本,最简单的可能是“UsingComparator:”版本。这将是这样的:
[array sortUsingComparator:^NSComparisonResult(id a, id b) {
NSString *name1 = [a objectAtIndex:0];
NSString *name2 = [b objectAtIndex:0];
return [name1 localizedCaseInsensitiveCompare:name2];
}]
答案 1 :(得分:0)
漂亮的代码Anomie!正是我在寻找的东西:)
但有两件事:
1 - 它是“sortedArrayUsingComparator”NSArray的函数而不是“sortUsingComparator”
2 - 你能解释一下代码:
^NSComparisonResult(id a, id b) {...}
喜欢:^有什么作用?从我从Apple Doc中读到的内容我假设你所做的是编写一个比较函数(花括号之间的代码),然后将它定义为NSComparisonResult。但是为什么假设/使用对象(id a,id b)?有没有一种常用的方法来为每种功能/数据类型执行此操作?