iOS按照权重排序

最近项目中遇到一个需求。对成员列表进行排序。规则如下
① 主持人永远在第一位,其余成员按授权>摄像头>麦克风>拼音排序。成员顺序实时变化。
想到可以用 NSSortDescriptor 很方便的实现。这里记录一下。

- (void)sortData
{
    NSSortDescriptor *roleDes = [NSSortDescriptor sortDescriptorWithKey:@"role" ascending:NO comparator:^NSComparisonResult(id  _Nonnull obj1, id  _Nonnull obj2) {
        
        NSNumber * number1  = obj1;
        NSNumber * number2  = obj2;
        if ([number1 integerValue] == kZegoUserRoleHost) {
            return NSOrderedDescending;
        }else if ([number2 integerValue] ==kZegoUserRoleHost){
            return NSOrderedAscending;
        }else{
            return NSOrderedSame;
        }
    }];
    NSSortDescriptor *permissionDes = [NSSortDescriptor sortDescriptorWithKey:@"permissions" ascending:NO];
    NSSortDescriptor *videoDesc = [NSSortDescriptor sortDescriptorWithKey:@"isEnableVideo" ascending:NO];
    NSSortDescriptor *muteDesc = [NSSortDescriptor sortDescriptorWithKey:@"isMute" ascending:YES];
    NSSortDescriptor *sort = [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES selector:@selector(localizedStandardCompare:)];
    NSArray *descs = [NSArray arrayWithObjects:roleDes,permissionDes,videoDesc, muteDesc, sort,nil];
    [self.peopleListA sortUsingDescriptors:descs];

    [self.tableV reloadData];
    
}

最近在实现一个PDF阅读的功能。后期会分享出来。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一天都在刷新,可是都失望了~我心里有点忐忑,唯有记录下来,以备以后用的到。 昨天凌晨妈妈好几次叫我给她喂糖水,然后...
    葱伴侣阅读 1,007评论 0 0
  • 上周末去听了丁丁芳香疗法的讲座,打算要用精油来好好爱自己。其实我好多年前就已经接触过精油,听过相关讲座,跟着朋友们...
    海红米花妈阅读 3,723评论 3 2
  • 到今天,研究生已经上了一年半,还有一年半就要毕业了,说实话,目前内心充满了前所未有的恐惧,害怕找不到工作,...
    转弯弯阅读 4,390评论 2 2
  • 当盛放的花朵开在春天对我招手 我听到花开的声音 看见树叶在风中婆娑的身影 春天来了 这温柔的声音 大地欢腾 百鸟齐...
    雪避客阅读 1,391评论 0 2