我正在努力尝试对一系列词典进行排序。
我的词典有一些兴趣,价格,受欢迎程度等值。
有什么建议吗?
答案 0 :(得分:197)
像这样使用NSSortDescriptor
..
NSSortDescriptor * descriptor = [[NSSortDescriptor alloc] initWithKey:@"interest" ascending:YES];
stories = [stories sortedArrayUsingDescriptors:@[descriptor]];
recent = [stories copy];
stories
是您要排序的数组。 recent
是另一个可变数组,它已经对字典值进行了排序。使用您必须对其进行排序的键值更改@"interest"
。
一切顺利
答案 1 :(得分:25)
[array sortUsingDescriptors:[NSArray arrayWithObjects:[NSSortDescriptor sortDescriptorWithKey:@"YOUR-KEY" ascending:YES], nil]];
我真的不想把它分成多行。对我来说已经很简单了。
答案 2 :(得分:10)
您可以从父级遍历到所需的子属性。对于例如
NSSortDescriptor *descriptor = [[NSSortDescriptor alloc] initWithKey:@"parent.child.child" ascending:YES];
答案 3 :(得分:4)
更新,sortUsingDescriptors现在是sortedArrayUsingDescriptors
所以,它就像:
items = [items sortedArrayUsingDescriptors:[NSArray arrayWithObjects:descriptor,nil]];
答案 4 :(得分:0)
编写一个排序函数,用于比较两个词典中的相关字段。如果您有此版本,则可以使用NSArray#sortedArrayUsingFunction:context:
对数组进行排序。
答案 5 :(得分:0)
array = [array sortedArrayUsingDescriptors:[NSArray arrayWithObjects:[NSSortDescriptor sortDescriptorWithKey:@"YOUR-KEY" ascending:YES], nil]];
记住分配给数组