iOS实现联系人按照首字母进行排序的实例

2020-01-21 03:04:40丽君

}

+(NSArray )SortFirstChar:(NSArray )firstChararry{


//数组去重复
NSMutableArray *noRepeat = [[NSMutableArray alloc]initWithCapacity:8];
NSMutableSet *set = [[NSMutableSet alloc]initWithArray:firstChararry];
[set enumerateObjectsUsingBlock:^(id obj , BOOL *stop){

 [noRepeat addObject:obj];
}];
//字母排序
NSArray *resultkArrSort1 = [noRepeat sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
 return [obj1 compare:obj2 options:NSNumericSearch];
}];
//把”#“放在最后一位
NSMutableArray *resultkArrSort2 = [[NSMutableArray alloc]initWithArray:resultkArrSort1];
if ([resultkArrSort2 containsObject:@"#"]) {
 [resultkArrSort2 removeObject:@"#"];
 [resultkArrSort2 addObject:@"#"];
}

return resultkArrSort2;

}

.h文件

先引入框架UIKit/UIKit.h /** * 获取model数组 */ UIKIT_EXTERN NSString *const CYPinyinGroupResultArray;

/** * 获取所包函字母的数组 */ UIKIT_EXTERN NSString *const CYPinyinGroupCharArray; @interface LinkManSort : NSObject +(NSDictionary )sortObjectsAccordingToInitialWith:(NSArray )willSortArr SortKey:(NSString *)sortkey ;

在VC里面调用

NSArray *arr = @[@{@”name”:@”李立”},@{@”name”:@” 李安”},@{@”name”:@”刘星”},@{@”name”:@”刘小米”},@{@”name”:@”苏音”},@{@”name”:@”韦佳佳”},@{@”name”:@”李华”},@{@”name”:@”杨波”},@{@”name”:@”陈恒”},@{@”name”:@”黄呀呀”},@{@”name”:@”邱珀”},@{@”name”:@”李克”},@{@”name”:@”123456”},@{@”name”:@”韦立林”},@{@”name”:@”陈瑶”}];


NSMutableArray *marr = [NSMutableArray arrayWithCapacity:10];
for (NSDictionary *dict in arr) {
 PersonModel *model =[[PersonModel alloc]init];// dict[@"name"];
 model.name =dict[@"name"];
 [marr addObject:model];

}

NSDictionary *dcit= [LinkManSort sortObjectsAccordingToInitialWith:marr SortKey:@”name”];


NSArray *resultarr1 = dcit[CYPinyinGroupResultArray];//排好顺序的PersonModel数组
NSArray *resultarr2 = dcit[CYPinyinGroupCharArray];//排好顺序的首字母数组

完成啦!

以上这篇iOS实现联系人按照首字母进行排序的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持ASPKU。


注:相关教程知识阅读请移步到IOS开发频道。