一个简单的类似通讯录的封装代码
来源:互联网 发布:客多宝宠物店软件下载 编辑:程序博客网 时间:2024/05/22 13:47
废话不多说上代码 直接使用该方法就可以
- (void)allDataRanger { // 通讯录排序,分组 UILocalizedIndexedCollation *collation = [UILocalizedIndexedCollation currentCollation]; //得出collation索引的数量,这里是27个(26个字母和1个#) NSInteger sectionTitlesCount = [[collation sectionTitles] count]; NSMutableArray *newSectionsArray = [[NSMutableArray alloc] initWithCapacity:sectionTitlesCount]; //初始化27个空数组加入newSectionsArray for (NSInteger index = 0; index < sectionTitlesCount; index++) { NSMutableArray *array = [[NSMutableArray alloc] init]; [newSectionsArray addObject:array]; } //将每个人按name分到某个section下 _dataSource存储的是模型数组 for (WDCar *model in _dataSource) { //获取name属性的值所在的位置,比如"林丹",首字母是L,在A~Z中排第11(第一位是0),sectionNumber就为11 NSInteger sectionNumber = [collation sectionForObject:model collationStringSelector:@selector(name)]; //把name为“林丹”的p加入newSectionsArray中的第11个数组中去 NSMutableArray *sectionNames = newSectionsArray[sectionNumber]; [sectionNames addObject:model]; } //对每个section中的数组按照name属性排序 for (NSInteger index = 0; index < sectionTitlesCount; index++) { NSMutableArray *personArrayForSection = newSectionsArray[index]; NSArray *sortedPersonArrayForSection = [collation sortedArrayFromArray:personArrayForSection collationStringSelector:@selector(name)]; newSectionsArray[index] = sortedPersonArrayForSection; } //将排序好的通讯录名单存到数据库里面 _indexDataSource存储的是计算出来的字母 // [messageDbManger saveUserToDataBase:_allDataSource]; NSMutableArray *temp = [NSMutableArray new]; _indexDataSource = [NSMutableArray new]; [newSectionsArray enumerateObjectsUsingBlock:^(NSArray *arr, NSUInteger idx, BOOL *stop) { if (arr.count == 0) { [temp addObject:arr]; } else { [_indexDataSource addObject:[collation sectionTitles][idx]]; } }]; // 存储的是每个字母下面的模型数组 _allDataSource =[[NSMutableArray alloc]init]; [newSectionsArray removeObjectsInArray:temp]; [_allDataSource removeAllObjects]; [_allDataSource addObjectsFromArray:newSectionsArray];
0 0
- 一个简单的类似通讯录的封装代码
- 一个简单的通讯录
- 一个简单的通讯录。。。
- 类似通讯录的列表
- 一个简单的通讯录程序
- 用类写一个简单的通讯录
- 实现一个简单的通讯录
- 一个简单类似朋友圈头像背景的代码
- UITableView 类似通讯录的索引
- UITableView 类似通讯录的功能
- 【汇编语言】写一个简单的通讯录
- php写一个简单的通讯录
- 一个简单的python程序实例(通讯录)
- 一个简单通讯录的c#设计尝试
- 【C语言】实现一个简单的通讯录
- 一个简单的安卓通讯录
- 用C++实现一个简单的通讯录
- 编写一个简单的控制台通讯录
- js省市县封装
- 搭建Windows Embedded Compact 7开发环境
- Android工程源码版本信息
- 算法学习(一):DBSCAN聚类算法
- 分治算法
- 一个简单的类似通讯录的封装代码
- Android4.x 如何处理Power按键
- 深入理解Activity启动流程
- nginx负载均衡单点解决方案
- c#学习摘录:类\继承\接口\字段、方法、属性\浅深复制(1)
- 面向对象设计的一个有缺陷的缓存机制
- CentOS无法联网
- Thinkphp3.2图片上传服务器端接收
- TotoiseSVN的基本使用方法