2016-06-23 4 views
0

일부 사전과 함께 NSArray이 있습니다. 일부 키와 값이 있습니다. 테이블 뷰에 표시하고 있습니다. 섹션 머리글 제목은 ddDate 값과 같은 사전의 키 값 중 하나입니다. 문제는 동일한 섹션에 동일한 ddDate 값이 필요하다는 것입니다. 그래서 그것에 따라 배열을 만들어야합니다.개체 배열의 키 값이 iOS와 동일한 지 확인하십시오.

responseDict (
     { 
     xx = 16; 
     yy = 17; 
     aa = 0; 
     bb = 6; 
     cc = 2016; 
     ddDate = "17-06-2016"; 
    }, 
     { 
     xx = 17; 
     yy = 17; 
     aa = 0; 
     bb = 6; 
     cc = 2016; 

     ddDate = "17-06-2016"; 

    }, 
     { 
     xx = 18; 
     yy = 17; 
     aa = 0; 
     bb = 6; 
     cc = 2016; 

     ddDate = "18-06-2016"; 

    } 

즉, 날짜는 섹션 제목입니다. 그리고 한 섹션 아래에서 동일한 ddDate 값을 가진 사람들. 아무도 나를 이룰 수있는 방법을 안내 할 수 있습니까?

+0

self.rows[self.sections[indexPath.section]].count 스위프트 또는 대물-C를 사용하고있다 섹션의 행수입니까? –

+0

@NiravDoctorwala obj-C – hacker

+0

'responseDict' (실제로는 배열입니다) 반복 - 사전에서'ddDate' 값을 추출하여'NSMutableArrays'를 저장하는 다른 사전의 키로 사용 -이 사전에서 배열 가져 오기 (또는이 키를위한 배열이 없다면 새로운 배열을 만든다)'responseDict' 요소 (실제로 사전이다)를이 배열에 추가한다. 일단 끝나면 사전에서 키를 배열로 추출한다 (이것은 모두'ddDate' 값이다). 귀하의 섹션에 대한이 배열을 사용하여 행에 대한 섹션 값을 기반으로 사전에서 배열을 검색 – Paulw11

답변

1

귀하의 목표는 두 가지 데이터 구조를 구축하는 것입니다. ddDate 값의 배열. 이것은 섹션 정보와 ddDate 값이 입력 된 배열 사전입니다. 이것은 행 데이터가 될 것입니다.

@property (strong, nonatomic) NSArray *sections; 
@property (strong, nonatomic) NSDictionary *rows; 

- (void)processJSONData:(NSArray *)inputArray { 

    NSMutableDictionary *extractedData = [NSMutableDictionary new]; 
    for (NSDictionary *dict in inputArray) { 
     NSString *ddDate = dict["ddDate"]; 
     NSMutableArray *rowArray = extractedData[ddDate]; 
     if (rowArray == nil) { 
      rowArray = [NSMutableArray new]; 
      extractedData[ddDate] = rowArray; 
     } 
     [rowArray addObject:dict]; 
    } 

    self.sections = [extractedData allKeys]; 
    self.rows = [NSDictionary dictionaryWithDictionary:extractedData]; 
} 

self.sections 어레이를 정렬 할 수 있습니다.

섹션들의 개수 및 self.sections.count

+0

U pls 명확히 할 수있는 말은 추출 데이터 [ddDict], 또는 추출 데이터 [dict ];? – hacker

+0

미안,'ddDate' – Paulw11

+0

내가 이것을 어떻게 cellforrowatindexpath에서 인덱스 path.section으로 처리 할 것인지 명확히 할 수있다. – hacker

0

사용자 정의 배열을 작성한 다음 날짜를 비교하고 날짜가 동일하면 하나의 헤더 제목 아래에 추가하고 다음 헤더 제목으로 이동해야합니다. 따라서 나는 여기에 바로 가기를 보지 못한다.