2014-11-19 3 views
-2

날짜가 포함 된 개체 배열이 있습니다. 이제이 날짜까지 UITableView에서 내 개체를 그룹화해야합니다. examle를 들어 :UITableView 섹션을 정렬하는 방법

0-{10-14; Obj1}; 
1-{10-14; Obj2}; 
2-{10-15; Obj3}; 
3-{10-15; Obj4}; 

는 내가 다음에 수행 한 해결하려면이

10-14 
    0-{10-14; Obj1}; 
    1-{10-14; Obj2}; 
10-15 
    2-{10-15; Obj3}; 
    3-{10-15; Obj4}; 

처럼 내 jQuery과에서 볼 필요가; 이 코드로 NSDictationary로 내 배열을 splited했습니다

NSMutableDictionary *preResult = [[NSMutableDictionary alloc] init]; 
for (ClientMessage *message in array) { 
    NSMutableArray *mArray = [preResult objectForKey:message.formattedDate]; 
    if (mArray == nil) { 
     mArray = [[NSMutableArray alloc] init]; 
     [preResult setObject: mArray forKey:message.formattedDate]; 
    } 
    [mArray addObject:message]; 
} 

그리고 내 테이블보기 내가 원하는 걸 보여 주지만 잘못된 순서로 보여줍니다; (내 배열은 날짜순으로 정렬되었습니다.) 그대는 내가 NSDictationary를 정렬 할 수 없다는 것을 알고 있는데,이 경우 어떻게 테이블 뷰에서 내 값을 정렬 할 수 있습니까? 또는 NSDictationary없이 내 가치를 그룹화하는 또 다른 방법이 있습니까?

+0

당신은있는 NSDictionary를 정렬 할 수 없습니다. 배열 배열을 사용하십시오. –

+0

* preResult *를 배열로 변경하고 게시 한 코드의 끝에 정렬합니다. – rdurand

답변

0

모든 값으로 사전로드 완료하면, 당신은 사전 내 각 배열을 정렬 할 수 있습니다 ...

for (NSString *key in [preResult allKeys]) 
{ 
    NSMutableArray *mArray = [preResult objectForKey:key]; 
     // sort array to achieve the desired result 
    NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"formattedDate" ascending:YES]; 
    NSArray *sortedArray = [mArray sortedArrayUsingDescriptors:@[sortDescriptor]]; 
     // reset newly sorted array for key inside the dictionary 
    [preResult sortedArray forKey:key]; 
} 
관련 문제