【问题标题】:Sort an array based on another configuration array根据另一个配置数组对数组进行排序
【发布时间】:2014-02-05 12:55:11
【问题描述】:

我必须根据配置对数组进行排序,假设它有一些学生的数据,其中有学生的名字

    [NSArray arrayWithObjects:[NSDictionary dictionaryWithObjectsAndKeys:@"abc",@"name", nil],[NSDictionary dictionaryWithObjectsAndKeys:@"efg",@"name", nil][NSDictionary dictionaryWithObjectsAndKeys:@"cde",@"name", nil], nil];

我有另一个数组,它说如何排序这个数组,就像它首先说的应该是 efg 然后 abc 等等。

是否可以使用 nsssortdescriptor 或者我必须编写自定义代码。

【问题讨论】:

    标签: ios objective-c nsarray nssortdescriptor


    【解决方案1】:

    我会使用一个块来让你指定你的比较逻辑

    NSArray *sortedArray = [_helpItems sortedArrayUsingComparator:^NSComparisonResult(id a, id b) {
        return [(MAHelpItem *)a order] > [(MAHelpItem *)b order];
    }];
    self.items = sortedArray;
    

    【讨论】:

      【解决方案2】:

      也许这就是你要找的东西:

        NSArray *students;
        NSArray *sortPriorities;
        NSMutableArray *sortDescriptors = @[].mutableCopy;
        for (NSString *key in sortPriorities) {
          [sortDescriptors addObject:[NSSortDescriptor sortDescriptorWithKey:key ascending:YES]];
        }
        NSArray *sortedStudents = [students sortedArrayUsingDescriptors:sortDescriptors];
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-05
        • 2011-05-02
        • 2021-12-23
        • 1970-01-01
        相关资源
        最近更新 更多