在开发中,经常会用到排序功能,数组排序比较常见,但是在Objective-C中没有像swift一样的直接针对对象某个属性排序的方法,需要自己创建NSSortDescriptor对象,在根据对象的配置,对数组进行排序
1.Objective-C中排序的方法:
//1.获取对象数组
NSArray *homeVisibleCellIndexPaths = [self.collectionView indexPathsForVisibleItems];
//2.将数组中的cell 根据indePath中Row,从小到大排序
NSSortDescriptor *sortDescriptor;
sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"row"
ascending:YES];
NSArray *sortedArray = [homeVisibleCellIndexPaths sortedArrayUsingDescriptors:@[sortDescriptor]];
注意:ascending:传YES 表示从小到大排序 1,2,3,4,5 ----> ...
传NO表示从大到小排序 10,9,8,7,6,5,4,3...
2.Swift中根据对象属性排序的方法:
//1.创建一个数组
var currentHomeVisibleCells = collectionView.indexPathsForVisibleItems
//根据IndexPath.row从小到大 进行排序
currentHomeVisibleCells.sort { (i1 : IndexPath, i2 : IndexPath) -> Bool in
return i1.row < i2.row
}
注意: i1.row < i2.row 表示从小到大排序 1,2,3,4,5.....
i1.row > i2.row 表示从大到小排序 5,4,3,2,1....
该方法是直接对数组进行操作
未完待续....
网友评论