我想在对整个数组进行排序之前对数组进行部分排序。以下将返回一个按“sortOrder”
排序的数组[folders sortedArrayUsingDescriptors:@[NSSortDescriptor sortDescriptorWithKey:@"sortOrder" ascending:YES]]
数组将如下所示:[x,a,z,w,y]
但是当“sortOrder”首先等于零时,我想按升序排序“name”。
所以最终的数组看起来像这样:[a,x,z,w,y]
有没有人知道如何做到这一点?
"folders": [
{
"sortOrder": 0,
"name": "x",
},
{
"sortOrder": 0,
"name": "a",
},
{
"sortOrder": 1,
"name": "z",
},
{
"sortOrder": 3,
"name": "y",
},
{
"sortOrder": 2,
"name": "w",
}
]
答案 0 :(得分:0)
传入两个排序描述符,一个用于“sortOrder”,第二个用于“name”:
NSArray *descriptors = @[
[NSSortDescriptor sortDescriptorWithKey:@"sortOrder" ascending:YES],
[NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES],
];
NSArray *sortedArray = [folders sortedArrayUsingDescriptors:descriptors];
使用此设置,将按名称对具有相同排序顺序的任何两个项目进行排序。