2015-01-27 9 views
2

내가 목표 C 프로그래밍에 큰 얼간이 목장 가이드를 읽고있다 그리고 난 코드를 가지고 : 나는 수익을 indexPath.row 또는 무엇 인덱스가 배열에 표현되는 것을 이해하지indexPath.row는 무엇을 반환합니까?

- (NSInteger) tableView:(UITableView *)tableView 
    numberOfRowsInSection:(NSInteger)section { 

    return [self.tasks count]; 
} 

- (UITableViewCell *) tableView:(UITableView *)tableView 
    cellForRowAtIndexPath:(NSIndexPath *)indexPath{ 

    // Get a reusable cell 
    UITableViewCell *c = [self.taskTable dequeueReusableCellWithIdentifier:@"Cell"]; 

    // This below is what i don't understand 
    NSString *item = [self.tasks objectAtIndex:indexPath.row]; 
    c.textLabel.text = item; 

    return c; 
} 

을, 난 그냥이 내가 실제로 작은 응용 프로그램을 만드는 책의 부분에 도달, 그래서 그냥 인덱스에 정수를 전달하는 데 익숙해.

NSString * item = [self.tasks objectAtIndex : indexPath.row];

이 코드가 모두 필요한지는 잘 모르겠지만 질문에 대답하는 데 필요한 모든 코드가 있는지 확인하고 싶습니다.

.H 파일 - http://pastebin.com/TRnPqn4d

하는 .m 파일 - http://pastebin.com/YXZffwye

답변

3

indexPath 여기에 관련되는 것은 2 비트의 정보를 포함한다.

  1. section - 셀을 배치 할 섹션의 섹션입니다.
  2. row - 셀이 배치 될 행 (섹션 내).

그래서 "무엇을 반환합니까?" 셀이 들어가는 섹션/행에 따라 다릅니다.

표시되는 행마다 함수가 한 번 실행됩니다. 따라서 indexPath.row으로 시작하려면 0이됩니다. 그러면 1, 2, 3 등이됩니다.

이렇게하면 매번 배열에서 올바른 문자열을 얻을 수 있습니다.

+0

섹션이 하나 뿐이지 만 indexPath.row는 내 배열에 대해 어떻게 알 수 있습니까? – hanseN

+0

@hanseN 그렇지 않습니다. 배열에 몇 가지 값이 포함되어 있습니다. 그런 다음'numberOfRows' 메쏘드 ('return array.count')에서 이것을 알려줍니다. 그래서 테이블은 많은 행을 생성합니다. 'array [0]'...'array [1]'등의 배열로부터 물건을 얻습니다 ...'indexPath.row'는이 숫자들을 생성합니다. – Fogmeister

+0

그래서 배열에 추가하는 각 객체에 대해 indexPath.row가 하나씩 증가합니까? – hanseN

0

NSIndexPath UIKit 추가로 NSIndexPathsectionrow 속성을 추가하는 범주를 추가합니다.

row
테이블보기의 섹션에서 행을 식별하는 색인 ​​번호. 읽기 전용
@property(nonatomic, readonly) NSInteger row

section
테이블 뷰 또는 뷰 컬렉션의 부분을 식별하는 인덱스 번호. (읽기 전용)
@property(nonatomic, readonly) NSInteger section

관련 문제