您的位置:首页 > 其它

【Foundation-10-3】#import <Foundation/NSArray.h>排序

2015-10-12 19:18 363 查看
自定义的排序
@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),稳定
*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: