有一点问题但找不到可行的解决方案:(
我有一个像NSMutableArray:
{
Entfernung = 129521;
"Event_DATE" = "2014-03-23";
"Event_ID" = 1;
"Event_KAT" = 1;
"Event_NAME" = achtzehn;
},
{
Entfernung = 112143;
"Event_DATE" = "2014-03-24";
"Event_ID" = 2;
"Event_KAT" = 2;
"Event_NAME" = neunzehn;
}
如何使用“Entfernung”对象对此数组进行排序?
Thx 4帮助! 格哈德
答案 0 :(得分:1)
尝试这样的事情;
NSArray *stuff = .... //your array here;
NSSortDescriptor *sorter = [NSSortDescriptor sortDescriptorWithKey:@"Entfernung" ascending:YES comparator:^NSComparisonResult(id obj1, id obj2) {
//depending on the number stored in the string, you might need the floatValue or doubleValue instead
NSNumber *num1 = @([(NSString*)obj1 integerValue]);
NSNumber *num2 = @([(NSString*)obj2 integerValue]);
return [num1 compare:num2];
}];
NSArray *sortedStuff = [[stuff sortedArrayUsingDescriptors:@[sorter]];
答案 1 :(得分:0)
我最简单的说法就是在Entfernung
类上定义一个比较方法,然后使用- (void)sortUsingSelector:(SEL)comparator
如果你已经有一个接受两个对象的函数(比如你的NSDictionary
}对象)然后我按照这个- (void)sortUsingFunction:(NSInteger (*)(id, id, void *))compare context:(void *)context
答案 2 :(得分:0)
给一个人一条鱼,他今天可以吃。告诉他如何捕鱼,他必须在余生中自己完成这项工作......
在Xcode中,查看帮助菜单。在帮助菜单中,您可以找到项目"文档和API参考"。在那里键入" NSMutableArray",然后搜索" sort"。这给你五种方法:
– sortUsingDescriptors:
– sortUsingComparator:
– sortWithOptions:usingComparator:
– sortUsingFunction:context:
– sortUsingSelector:
您可以单击每个并阅读说明。最直接使用的是sortUsingComparator:它附带了一些适合您的目的的示例代码。