Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 使用描述符使用SorterDarray进行部分排序_Ios_Sorting - Fatal编程技术网

Ios 使用描述符使用SorterDarray进行部分排序

Ios 使用描述符使用SorterDarray进行部分排序,ios,sorting,Ios,Sorting,在对整个数组进行排序之前,我想对数组进行部分排序。下面将返回按“sortOrder”排序的数组 [folders sortedArrayUsingDescriptors:@[NSSortDescriptor sortDescriptorWithKey:@"sortOrder" ascending:YES]] 数组将如下所示:[x,a,z,w,y] 但当“sortOrder”首先等于零时,我想按升序对“name”进行排序 最后一个数组如下所示:[a,x,z,w,y] 有人知道怎么做吗 "fold

在对整个数组进行排序之前,我想对数组进行部分排序。下面将返回按“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",
     }
]

传入两个排序描述符,一个用于排序器,另一个用于名称:

NSArray *descriptors = @[
    [NSSortDescriptor sortDescriptorWithKey:@"sortOrder" ascending:YES],
    [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES],
];

NSArray *sortedArray = [folders sortedArrayUsingDescriptors:descriptors];
使用此设置,具有相同排序顺序的任何两个项目都将按名称排序