Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/44.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
Iphone 如何在目标C中对数组进行排序?_Iphone - Fatal编程技术网

Iphone 如何在目标C中对数组进行排序?

Iphone 如何在目标C中对数组进行排序?,iphone,Iphone,可能的重复项: 我有一个随机排列的NSMutableArray。我必须按升序和降序对它们进行排序?是否有任何内置的功能,如果没有,如何可以做到这一点。数组如下所示: arr=[“12”、“85”、“65”、“73”、“21”、“87”、“1”、“34”、“32”] 排序包含对象的NSMutableArray(基于键) 首先,您需要创建一个NSSortDescriptor,并告诉它在哪个键上对数组进行排序 NSSortDescriptor *lastNameSorter = [[NSSort

可能的重复项:

我有一个随机排列的NSMutableArray。我必须按升序和降序对它们进行排序?是否有任何内置的功能,如果没有,如何可以做到这一点。数组如下所示:

arr=[“12”、“85”、“65”、“73”、“21”、“87”、“1”、“34”、“32”]

排序包含对象的NSMutableArray(基于键)

首先,您需要创建一个NSSortDescriptor,并告诉它在哪个键上对数组进行排序

 NSSortDescriptor *lastNameSorter = [[NSSortDescriptor alloc] initWithKey:@"lastName" ascending:YES];
[personList sortUsingDescriptors:[NSArray arrayWithObject:lastNameSorter]];

希望能帮助您。

您案例的示例代码:

NSArray *sortedArray; 

sortedArray = [anArray sortedArrayUsingFunction:intSort context:NULL];

NSInteger intSort(id num1, id num2, void *context)
{
    int v1 = [num1 intValue];
    int v2 = [num2 intValue];
    if (v1 < v2)
        return NSOrderedAscending;
    else if (v1 > v2)
        return NSOrderedDescending;
    else
        return NSOrderedSame;
}
NSArray*sortedArray;
SorterDarray=[anArray SorterDarrayUsingFunction:intSort上下文:NULL];
NSInteger intSort(id num1、id num2、void*context)
{
int v1=[num1 intValue];
int v2=[num2 intValue];
如果(v1v2)
退而求其次;
其他的
返回指定名称;
}
您可以开发一个逻辑来在intsort方法中对数组进行排序,并将其作为参数传递给上述方法

有许多预定义的方法,如:

  • 排序描述符:
  • sortUsingComparator:
  • 排序选项:使用比较器:
  • sortUsingFunction:上下文:
  • sortUsingSelector:
关注developer.apple.com获取api


祝您好运TNX

使用类NSMutableArray的实例方法

使用此行(但如果是数字,则需要使用NSNumbers而不是字符串)

它按升序对数组进行排序。对于降序,请将此行添加到上一行之后

myArray=[myArray reverseObjectEnumerator] allObjects];

阵列的类型是什么<代码>NSArray?或者它只是一个
C
数组?@Paul R:它是NSMUTABLEARRY请编辑您的问题以包含此澄清逻辑不随语言变化……您可以使用冒泡排序。@iAmitWagh:如果您还不知道,冒泡排序是您可以选择的最差排序算法之一,它的复杂性为O(n^2)!
myArray=[myArray reverseObjectEnumerator] allObjects];