前一段时间要在应用程序中要加入检索的功能,在网上找了很多是手写的,于是今天在这里写一下备忘。直接贴的项目代码。
第一步:对数据源进行排序和分区处理。这里addressBookArray是存储最后的排序完数组。backToControllerData是函数传入的数据源。
NSMutableArray
*addressBookArrayTmp=[[
NSMutableArray
alloc
]
init
];
addressBookArrayTmp = (
NSMutableArray
*)backToControllerData;
//
将数据传给临时数组,对临时数组进行排序
//************* 增加排序和索引 **************8*
addressBookArray =[ NSMutableArray arrayWithCapacity : 1 ];
UILocalizedIndexedCollation *indexedCollation=[ UILocalizedIndexedCollation currentCollation ];
for ( ISSTUserModel *theAdressBookModel in addressBookArrayTmp) {
NSInteger section=[indexedCollation sectionForObject :theAdressBookModel collationStringSelector : @selector (name)];
theAdressBookModel. section =section;//这里的addressModel是一个类,里面有name属性,这个方法是按照name来分区。
}
NSInteger sectionCount=[[indexedCollation sectionTitles ] count ];
NSMutableArray *sectionsArray=[ NSMutableArray arrayWithCapacity :sectionCount];//这里使用的是二维数组,这是外面一层
for ( int i= 0 ; i<=sectionCount; ++i) {
NSMutableArray *singleSectionArray=[ NSMutableArray arrayWithCapacity : 1 ];//这是在每个外层数组里面初始化子数组
[sectionsArray
//************* 增加排序和索引 **************8*
addressBookArray =[ NSMutableArray arrayWithCapacity : 1 ];
UILocalizedIndexedCollation *indexedCollation=[ UILocalizedIndexedCollation currentCollation ];
for ( ISSTUserModel *theAdressBookModel in addressBookArrayTmp) {
NSInteger section=[indexedCollation sectionForObject :theAdressBookModel collationStringSelector : @selector (name)];
theAdressBookModel. section =section;//这里的addressModel是一个类,里面有name属性,这个方法是按照name来分区。
}
NSInteger sectionCount=[[indexedCollation sectionTitles ] count ];
NSMutableArray *sectionsArray=[ NSMutableArray arrayWithCapacity :sectionCount];//这里使用的是二维数组,这是外面一层
for ( int i= 0 ; i<=sectionCount; ++i) {
NSMutableArray *singleSectionArray=[ NSMutableArray arrayWithCapacity : 1 ];//这是在每个外层数组里面初始化子数组
[sectionsArray