【发布时间】:2012-04-27 07:33:55
【问题描述】:
我想按升序对多个数字的整数数组进行排序。
这是我的数组:
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]]);
问题是这会像这样对数组进行排序
sortedArray: (
1067,
1071,
1072,
1074,
1075,
1076,
1077,
1078,
1079,
1080,
1081,
1082,
978
)
它会先排序四位数字,然后是三位数字。
【问题讨论】:
-
sortedArray2的顺序有什么问题?您正在记录按字符串值排序的 keyArray,而 sortedArray2 应该按整数值正确排序...?
标签: iphone objective-c