我有NSMutableArray
包含像这样的对象
[1,10,100,101,32A,32B,75,76,77,GAOTHAN]
,我想按升序对此数组进行排序。
我正在使用下面的代码,但它不起作用,因为我的数组中没有任何键。如果有人有解决方案,请告诉我。
NSSortDescriptor *descriptor = [[NSSortDescriptor alloc] initWithKey:@"self"
ascending:NO];
NSArray *descriptors = [NSArray arrayWithObject:descriptor];
NSArray *reverseOrder = [dateArray sortedArrayUsingDescriptors:descriptors];
答案 0 :(得分:0)
我明白了
-(void)sortArray
{
NSMutableArray *unsortedArray = [NSMutableArray arrayWithObjects:@"1",@"10",@"100",@"32A",@"32B",@"GAOTHAN", nil];
NSArray *sortedArray = [unsortedArray sortedArrayUsingComparator:^(id firstObject, id secondObject)
{
return [((NSString *)firstObject) compare:((NSString *)secondObject) options:NSNumericSearch]; }];
NSLog(@"Array is ::%@",sortedArray);
}
答案 1 :(得分:-1)
您需要添加比较方法
- (NSComparisonResult)compare:(NSString *)otherObject {
return [self compare:otherObject];
}
使用以下代码调用此方法,该代码返回已排序的数组。
NSMutableArray * arrayToFilter = [NSMutableArray arrayWithObjects:@"1",@"10",@"100",@"101",@"32A",@"32B",@"75",@"76",@"77",@"GAOTHAN",nil];
NSArray *sortedArray = [arrayToFilter sortedArrayUsingSelector:@selector(compare:)];
您可以编写自己的逻辑来比较数组的两个对象。