数组的正序排序
、倒序排序
、降序排列
、升序排列
都是常用到的。而系统为了方便使用简化代码而提供有sortedArrayUsingComparator
数组排序方法
数组倒序
NSArray *originArray=@[@2,@5,@4,@1,@3,@7,@6];
NSArray *resultArray=[originArray sortedArrayUsingComparator:^NSComparisonResult(id _Nonnull obj1, id _Nonnull obj2) {
return NSOrderedDescending;
}];
DLog(@"%@>>>数组倒序",resultArray);
("6","7","3","1","4","5","2",)>>>数组倒序
数组正序
NSArray *originArray=@[@2,@5,@4,@1,@3,@7,@6];
NSArray *resultArray=[originArray sortedArrayUsingComparator:^NSComparisonResult(id _Nonnull obj1, id _Nonnull obj2) {
return NSOrderedAscending;
}];
DLog(@"%@>>>数组正序",resultArray);
("2","5","4","1","3","7","6",)>>>数组正序
数组降序
NSArray *originArray=@[@2,@5,@4,@1,@3,@7,@6];
NSArray *resultArray=[originArray sortedArrayUsingComparator:^NSComparisonResult(id _Nonnull obj1, id _Nonnull obj2) {
if ([obj1 integerValue]>[obj2 integerValue]) {
return NSOrderedAscending;
}
return NSOrderedDescending;
}];
DLog(@"%@>>>数组降序",resultArray);
("7","6","5","4","3","2","1",)>>>数组降序
数组升序
NSArray *originArray=@[@2,@5,@4,@1,@3,@7,@6];
NSArray *resultArray=[originArray sortedArrayUsingComparator:^NSComparisonResult(id _Nonnull obj1, id _Nonnull obj2) {
if ([obj1 integerValue]>[obj2 integerValue]) {
return NSOrderedDescending;
}
return NSOrderedAscending;
// return [[NSNumber numberWithInteger:[obj1 integerValue]] compare:[NSNumber numberWithInteger:[obj2 integerValue]]];
}];
DLog(@"%@>>>数组升序",resultArray);
("1","2","3","4","5","6","7",)>>>数组升序
排序比较结果
/*
These constants are used to indicate how items in a request are ordered, from the first one given in a method invocation or function call to the last (that is, left to right in code).
Given the function:
NSComparisonResult f(int a, int b)
If:
a < b then return NSOrderedAscending. The left operand is smaller than the right operand.
a > b then return NSOrderedDescending. The left operand is greater than the right operand.
a == b then return NSOrderedSame. The operands are equal.
*/
typedef NS_CLOSED_ENUM(NSInteger, NSComparisonResult) {
NSOrderedAscending = -1L,
NSOrderedSame,
NSOrderedDescending
};
NSComparisonResult | |
---|---|
NSOrderedAscending |
升序 (左<右) |
NSOrderedSame |
相等 (左=右) |
NSOrderedDescending |
降序 (左>右) |
NSStringCompareOptions
/* These options apply to the various search/find and comparison methods (except where noted).
*/
typedef NS_OPTIONS(NSUInteger, NSStringCompareOptions) {
NSCaseInsensitiveSearch /*不区分大小写比较*/
NSLiteralSearch /*区分大小写比较*/
NSBackwardsSearch /*从字符串末尾开始搜索*/
NSAnchoredSearch /*搜索限制范围的字符串*/
NSNumericSearch /*按照字符串里的数字为依据,算出顺序*/
NSDiacriticInsensitiveSearch /*忽略 "-" 符号的比较*/
NSWidthInsensitiveSearch /*忽略字符串的长度,比较出结果*/
NSForcedOrderingSearch /*忽略不区分大小写比较的选项,并强制返回NSOrderedAscending 或者 NSOrderedDescending*/
NSRegularExpressionSearch /*只能应用于 rangeOfString:..., stringByReplacingOccurrencesOfString:...和 replaceOccurrencesOfString:... 方法。使用通用兼容的比较方法,如果设置此项,可以去掉 NSCaseInsensitiveSearch 和 NSAnchoredSearch*/
};
网友评论