按升序或降序对正常数组进行排序

时间:2017-07-20 02:53:26

标签: objective-c

如何按升序或降序对普通数组(非NSArray)中的对象进行排序(假设数组中的所有对象都是整数)?这甚至可能吗?

这是我的代码:

int areas[detectedBlobs.size()];

for (int i = 0; i < detectedBlobs.size(); i++)
{
    areas[i] = detectedBlobs[i].getWidth() * detectedBlobs[i].getHeight(); 
}

NSSortDescriptor *sortOrder = [NSSortDescriptor sortDescriptorWithKey: @"self"
                                                            ascending: NO];
return [areas sortedArrayUsingDescriptors: [NSArray arrayWithObject: sortOrder]]; // error is here

2 个答案:

答案 0 :(得分:0)

如果“普通数组”表示C数组,则使用标准库函数qsort()。如果您的Xcode没有手册页作为其文档的一部分,请在终端中键入man 3 qsort

如果“数组中的所有对象都是整数”,则表示它们是NSNumber个实例,然后您可以定义在qsort()文件中传递给.m的排序函数,然后它可以进行Objective-C方法调用以从NSNumber对象获取整数值。

答案 1 :(得分:0)

sapply(y, function(i) assign(substr("UGCACGU", start = 1, stop = 1), i))

使用SORT DISCRIPTOR

编辑后

您必须先将其转换为数字

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