2015-05-05 64 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