Iphone 无法对整数数组进行排序?
我想用多个数字按升序对整数数组进行排序 这是我的阵列:Iphone 无法对整数数组进行排序?,iphone,objective-c,Iphone,Objective C,我想用多个数字按升序对整数数组进行排序 这是我的阵列: keyArray: ( 978, 1077, 1067, 1076, 1072, 1082, 1079, 1075, 1071, 1081, 1078, 1080, 1074 ) 这是我的密码: NSSortDescriptor *sortOrder = [NSSortDescriptor sortDescriptorWithKey:@"self" ascen
keyArray:
(
978,
1077,
1067,
1076,
1072,
1082,
1079,
1075,
1071,
1081,
1078,
1080,
1074
)
这是我的密码:
NSSortDescriptor *sortOrder = [NSSortDescriptor sortDescriptorWithKey:@"self" ascending: YES];
NSArray *sortedArray2 = [keyArray sortedArrayUsingComparator:^(id str1, id str2) {
if ([str1 integerValue] < [str2 integerValue]) {
return (NSComparisonResult)NSOrderedDescending;
}
if ([str1 integerValue] > [str2 integerValue]) {
return (NSComparisonResult)NSOrderedAscending;
}
return (NSComparisonResult)NSOrderedSame;
}];
NSLog(@"%@",[keyArray sortedArrayUsingDescriptors: [NSArray arrayWithObject:sortOrder]]);
它将首先对四位数进行排序,然后对三位数进行排序
NSInteger firstNumSort(id str1, id str2, void *context) {
int num1 = [str1 integerValue];
int num2 = [str2 integerValue];
if (num1 < num2)
return NSOrderedAscending;
else if (num1 > num2)
return NSOrderedDescending;
return NSOrderedSame;
}
希望,这将帮助你
希望,这将帮助你…你可以很容易地实现你想要的,试试这个:
NSArray * sortedArray2 = [keyArray sortedArrayUsingComparator:^(id str1, id str2){
return [(NSString *)str1 compare:(NSString *)str2 options:NSNumericSearch];
}];
你可以很容易地实现你想要的,试试以下方法:
NSArray * sortedArray2 = [keyArray sortedArrayUsingComparator:^(id str1, id str2){
return [(NSString *)str1 compare:(NSString *)str2 options:NSNumericSearch];
}];
Darray2的顺序怎么了?您正在记录按字符串值排序的keyArray,而SorterDarray2应按整数值正确排序…?SorterDarray2的顺序有什么问题?您正在记录按字符串值排序的keyArray,而SortedArray 2应按整数值正确排序。。。?
NSArray * sortedArray2 = [keyArray sortedArrayUsingComparator:^(id str1, id str2){
return [(NSString *)str1 compare:(NSString *)str2 options:NSNumericSearch];
}];