【发布时间】:2011-01-24 12:04:36
【问题描述】:
我正在努力尝试对字典数组进行排序。
我的字典有几个值,包括兴趣、价格、受欢迎程度等。
有什么建议吗?
【问题讨论】:
标签: ios objective-c sorting nsarray nsdictionary
我正在努力尝试对字典数组进行排序。
我的字典有几个值,包括兴趣、价格、受欢迎程度等。
有什么建议吗?
【问题讨论】:
标签: ios objective-c sorting nsarray nsdictionary
编写一个排序函数,比较两个字典中的相关字段。例如,当您拥有此版本时,您可以使用 NSArray#sortedArrayUsingFunction:context: 对数组进行排序。
【讨论】:
像这样使用NSSortDescriptor..
NSSortDescriptor * descriptor = [[NSSortDescriptor alloc] initWithKey:@"interest" ascending:YES];
stories = [stories sortedArrayUsingDescriptors:@[descriptor]];
recent = [stories copy];
stories 是您要排序的数组。 recent 是另一个具有排序字典值的可变数组。将 @"interest" 更改为您必须排序的键值。
一切顺利
【讨论】:
[array sortUsingDescriptors:[NSArray arrayWithObjects:[NSSortDescriptor sortDescriptorWithKey:@"YOUR-KEY" ascending:YES], nil]];
我真的不想把它分成多行。对我来说已经足够简单了。
【讨论】:
更新,sortUsingDescriptors 现在是 sortedArrayUsingDescriptors
所以,就像这样:
items = [items sortedArrayUsingDescriptors:[NSArray arrayWithObjects:descriptor,nil]];
【讨论】:
[NSArray sortedArrayUsingDescriptors] 和 - [NSMutableArray sortUsingDescriptors]。最新的仍然存在,没有被替换。
您可以从父属性遍历到所需的子属性。例如
NSSortDescriptor *descriptor = [[NSSortDescriptor alloc] initWithKey:@"parent.child.child" ascending:YES];
【讨论】:
array = [array sortedArrayUsingDescriptors:[NSArray arrayWithObjects:[NSSortDescriptor sortDescriptorWithKey:@"YOUR-KEY" ascending:YES], nil]];
记住分配给数组
【讨论】: