Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.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
Objective c 按相反顺序排序NSArray_Objective C_Ios_Xcode - Fatal编程技术网

Objective c 按相反顺序排序NSArray

Objective c 按相反顺序排序NSArray,objective-c,ios,xcode,Objective C,Ios,Xcode,只是想知道如何按降序对这个数字数组进行排序?或者使用允许将块作为比较器传递的方法,实现一个反转对象的比较器(返回SensorDeredAscing以进行SensorDeredAscing,反之亦然) 。。。或: NSArray* sortedArray = [myArray sortedArrayUsingSelector:@selector(compare:)]; 对不起。删除最重要的部分。使用NSSortDescriptor NSArray *reversed = [[[myArray s

只是想知道如何按降序对这个数字数组进行排序?

或者使用允许将块作为比较器传递的方法,实现一个反转对象的比较器(返回SensorDeredAscing以进行SensorDeredAscing,反之亦然)

。。。或:

NSArray* sortedArray = [myArray sortedArrayUsingSelector:@selector(compare:)];

对不起。删除最重要的部分。

使用
NSSortDescriptor

NSArray *reversed = [[[myArray sortedArrayUsingSelector:@selector(compare:)] reverseObjectEnumerator] allObjects];

我喜欢使用
sortedarrayingfunction:
方法,它可以完全控制数组的排序方式。然后,如果要反转结果,则返回本应返回的负值

NSSortDescriptor* sortOrder = [NSSortDescriptor sortDescriptorWithKey: @"self" ascending: NO];
NSArray *temp = [myArray sortedArrayUsingDescriptors: [NSArray arrayWithObject: sortOrder]];

没有代码的注释是合理的,但是这个答案中给出的代码行只是反转数组。实际上没有进行排序。最好明确说明应该在sorted array.Yerp上调用它。我删去了最初的表达。问得好。我不知道。^为什么一条评论说“Idk”获得了选票?啊,见鬼,我要加入+1
NSInteger myCompare (id obj1, id obj2, void *context) {
    int retval = [obj1 compare:obj2 options:NSNumericSearch];
    retval = -retval; // now it's sorted reverse
    return retval;
}

...

NSArray *arr = @[@"foo20zz", @"foo7zz", @"foo100zz"];
NSArray *sarr = [arr sortedArrayUsingFunction:myCompare context:NULL];
NSLog(@"sarr is %@", sarr);