自定义的排序
@property (readonly, copy) NSData *sortedArrayHint;
- (NSArray *)sortedArrayUsingFunction:(NSInteger (*)(id, id, void *))comparator context:(void *)context;
- (NSArray *)sortedArrayUsingFunction:(NSInteger (*)(id, id, void *))comparator context:(void *)context hint:(NSData *)hint;
- (NSArray *)sortedArrayUsingSelector:(SEL)comparator;
arr1 = @[@"1",@"2",@"3",@"4",@"2"];
//获取 data 用于下面的自定义排序
NSData *data1 = [arr1 sortedArrayHint];
//排序,自定义排序规则,
// NSArray *arr3 = [arr1 sortedArrayUsingFunction:<#(NSInteger (*)(__strong id, __strong id, void *))#> context:<#(void *)#>]
// NSArray *arr4 = arr1 sortedArrayUsingFunction:<#(NSInteger (*)(__strong id, __strong id, void *))#> context:<#(void *)#> hint:<#(NSData *)#>
// NSArray *arr5 = [arr1 sortedArrayUsingSelector:@selector(paixu:)];
- (NSArray *)sortedArrayUsingComparator:(NSComparator)cmptr NS_AVAILABLE(10_6, 4_0);
- (NSArray *)sortedArrayWithOptions:(NSSortOptions)opts usingComparator:(NSComparator)cmptr NS_AVAILABLE(10_6, 4_0);
arr1 = @[@"1",@"2",@"3",@"4",@"2"];
//简单粗暴
NSArray *arr6 = [arr1 sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
NSComparisonResult result = [obj1 compare:obj2];
if (result == NSOrderedDescending) {
return YES;
}else{
return NO;
}
// return result == NSOrderedDescending;//升序,一个比一个大
}];
/*
NSOrderedAscending = -1L, //降
NSOrderedSame, //一致
NSOrderedDescending; //升
*/
NSLog(@"%@",arr6);
NSArray *arr7 = [arr6 sortedArrayWithOptions:NSSortStable usingComparator:^NSComparisonResult(id obj1, id obj2) {
NSComparisonResult result = [obj1 compare:obj2];
return result == NSOrderedDescending;//升序
}];
/*
NSSortConcurrent = (1UL << 0),并发
NSSortStable = (1UL << 4),稳定
*/