2012-09-23 5 views
0

일련 번호의 NSArray 객체로 저장하고있는 JSON으로 날짜/시간을 가져옵니다.JSON 날짜 정렬

"created_at" = "2012-09-21T12:41:26-0500" 

을 최신 항목이 맨 위에되도록 내 배열을 정렬하려면 어떻게해야 다음과 같이

JSON 형식이다.

당신

+0

이 정보가 도움이됩니까? [NSArray sorting] (http://www.cocoanetics.com/2009/03/nsarray-sorting-using-selectors/) – Anshu

답변

1

당신이 원래의 배열 안에있는 항목의 각 하나에 대한 NSDate 객체로 날짜 문자열을 변환 할 필요가있는 첫번째 일은 감사 시스템이 날짜를 비교하는 방법을 알고,이는 열쇠입니다 ISO8601 문자열은 아닙니다.

I, 당신은 전환이 질문에 대한 답변을 사용할 수있는 NSDate에 사용자 정의 범주를 사용하고 노호 예에서 변환을 수행하는 방법은 여러 가지가 있습니다 : 당신이 NSDates가 있으면 정렬, Is there a simple way of converting an ISO8601 timestamp to a formatted NSDate?

은 울부 짖는 도시 된 바와 같이 NSSortDescriptor를 사용하여 매우 쉽게 :

NSArray *originalArray = @[ 
    @{@"created_at" : [NSDate dateFromISO8601String:@"2012-09-21T12:41:26-0500"]}, 
    @{@"created_at" : [NSDate dateFromISO8601String:@"2012-07-21T12:41:26-0500"]}, 
    @{@"created_at" : [NSDate dateFromISO8601String:@"2012-06-21T12:41:26-0500"]}, 
    @{@"created_at" : [NSDate dateFromISO8601String:@"2012-10-21T12:41:26-0500"]} 
    ]; 

NSSortDescriptor *sortDescriptor = 
    [[NSSortDescriptor alloc] initWithKey:@"created_at" ascending:NO]; 
NSArray *sortedArray = 
    [originalArray sortedArrayUsingDescriptors:@[sortDescriptor]]; 

sortedArray 원래 배열의 정렬 된 버전을 포함, 당신은 우리가 정렬 설명자 배열을 전달 볼 수 있듯이,이 여러 종류의 설명을 전달할 수 있습니다 변수 당신이 원한다면 날짜와 다른 속성 (예 : 제목, 이름)을 두 번째 설명자로 사용합니다.

+0

상세하고 잘 설명 된 답변을 보내 주셔서 감사합니다. 건배 – jini