【问题标题】:Sort NSArray of NSArray of dictionaries对字典的 NSArray 的 NSArray 进行排序
【发布时间】:2015-07-15 07:59:02
【问题描述】:

我有一个 parentArray,其中包含子数组的索引。每个子数组都有一个包含多个键值对的字典。一个键有一个子字典作为它的值。基于此子字典的值之一,我想对 parentArray 进行排序。

ParentArray [
    ChildArray [{
        parentKey: {
                childKey: <the value to sort parentArray>
            }
    }],
    ChildArray [{
        parentKey: {
            childKey: <the value to sort parentArray>
        }
    }]
]

childKey 的值是我想要对 ParentArray 进行排序的值。

【问题讨论】:

  • 好的,你试过什么?
  • 我正在做的是将子数组转换为自定义对象,然后根据该自定义对象的属性对父数组进行排序。肯定能解决问题,但想知道有没有更直接的方法。
  • [NSArray sortedArrayUsingComparator:] 可以。
  • 能否详细说明如何选择childKey?
  • 感谢特洛伊木马。让它工作。

标签: ios objective-c sorting dictionary nsarray


【解决方案1】:
arrParent = [arrParent sortedArrayUsingComparator:^NSComparisonResult(id arrChild1, id arrChild2) {
    NSDictionary *dict1 = [(NSArray *)arrChild1 objectAtIndex:0];
    NSDictionary *dict2 = [(NSArray *)arrChild2 objectAtIndex:0];
    int user1 = [[dict1 objectForKey:@"id"] intValue];
    int user2 = [[dict2 objectForKey:@"id"] intValue];

    if (user1 > user2)
    {
        return (NSComparisonResult)NSOrderedAscending;
    }
    else if (user1 < user2)
    {
        return (NSComparisonResult)NSOrderedDescending;
    }


    return (NSComparisonResult)NSOrderedSame;
}];

得到帮助here

【讨论】:

    猜你喜欢
    • 2012-03-19
    • 1970-01-01
    • 2011-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-23
    相关资源
    最近更新 更多