swift 索引排序
- func setDataForTableview(textArr:[TSTheFriendsList]){
- let personArr = NSMutableArray()
- for str :TSTheFriendsList in textArr {
- personArr.addObject(str)
- }
- let collation = UILocalizedIndexedCollation.currentCollation()
- //获取section的标题
- let titles:NSArray = collation.sectionTitles
- //构建每个section数组
- let sectionArray = NSMutableArray()
- for _ in 1...titles.count{
- let subArr = NSMutableArray()
- sectionArray.addObject(subArr)
- }
- //排序
- //按照将需要排序的对象放入到对应分区数组
- for p in personArr {
- let section:NSInteger = collation
- .sectionForObject(p, collationStringSelector: Selector("userName"))
- let subArr:NSMutableArray = sectionArray[section] as! NSMutableArray
- subArr.addObject(p)
- }
- //分别对分区进行排序
- for subArr in sectionArray {
- let sortArr:NSArray = collation.sortedArrayFromArray(subArr as! [AnyObject], collationStringSelector: Selector("userName"))
- subArr.removeAllObjects()
- subArr.addObjectsFromArray(sortArr as [AnyObject])
- }
- //删除分区为空的内容
- let temp = NSMutableArray()
- sectionArray.enumerateObjectsUsingBlock { (arr:AnyObject, idx :Int, stop : UnsafeMutablePointer<ObjCBool>) in
- let array:NSArray = arr as! NSArray
- if Bool(array.count) {
- let titleArr:NSArray = collation.sectionTitles
- self.sectionTitlesArray.addObject(titleArr.objectAtIndex(idx))
- }else{
- temp.addObject(arr)
- }
- }
- sectionArray.removeObjectsInArray(temp as [AnyObject])
- let array = sectionArray.copy() as! NSArray
- self.dataSource = NSMutableArray.init(array: array)
- var tempArray = [TSTheFriendsList]()
- let model = TSTheFriendsList()
- tempArray.append(model)
- tempArray.append(model)
- self.dataSource.insertObject(tempArray, atIndex: 0)
- self.sectionTitlesArray.insertObject("", atIndex: 0)
- }
来源: https://www.oschina.net/code/snippet_2248391_58507