美文网首页
iOS 数组按照某一属性快速排序

iOS 数组按照某一属性快速排序

作者: 沐北 | 来源:发表于2019-10-22 10:39 被阅读0次

    sortedArrayUsingComparator是一个block函数

    可以用于对数组进行快速排序,对于model的操作类似

    NSArray *sortArrayByIDStr = [self.dataSource sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
            NSDictionary *pModel1 = obj1;
            NSDictionary *pModel2 = obj2;
            
            if ([self timeWithStr:pModel1[@"finishDate"]] < [self timeWithStr:pModel2[@"finishDate"]]){
                if (self.timerInt == 0) {
                    return NSOrderedAscending;
                    
                }else{
                    
                    return NSOrderedDescending;
                }
                
                
            }else{
                if (self.timerInt == 0) {
                    return NSOrderedDescending;
                    
                }else{
                    
                    return NSOrderedAscending;
                }
            }
     
        }];
    

    对于Comparator的返回值文档有下面的说明

    NSOrderedAscending 升序
    The left operand is smaller than the right operand.
    NSOrderedSame 等于
    The two operands are equal.
    NSOrderedDescending 降序
    The left operand is greater than the right operand
    如果你期望的是值小的在前而值大的在后(升序),则可以在比较的时候返回NSOrderedAscending(-1),否则,就是NSOrderedDescending(1)。

    相关文章

      网友评论

          本文标题:iOS 数组按照某一属性快速排序

          本文链接:https://www.haomeiwen.com/subject/ptbhuctx.html