2015-05-05 60 views
-1

我有一个parentArray与它的索引的子数组。每个子数组都有一个包含多个键值对的字典。一个键有一个儿童字典作为其值。基于这个子字典的其中一个值,我想排序parentArray。排序NSArray的字典的NSArray

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

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

+2

行,所以你尝试过什么? – trojanfoe

+0

我正在做的是将子数组转换为自定义对象,然后对该自定义对象的属性进行父级排序。它肯定会解决问题,但想知道是否有更直接的方法。 – iAmd

+1

'[NSArray sortedArrayUsingComparator:]'会工作。 – trojanfoe

回答

0
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