iOS中数组排序 对象属性排序

2019-03-08  本文已影响0人  43e94cd120e0

在开发中,经常会用到排序功能,数组排序比较常见,但是在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....

该方法是直接对数组进行操作

未完待续....

上一篇下一篇

猜你喜欢

热点阅读