2014-06-11 7 views
4

다음 코드에서 indexPath.section이 null 값을 반환하는 이유를 이해할 수 없습니다.NSIndexPath 섹션 값에 액세스하는 방법?

if let section = indexPath?.section { 
    NSLog("Index Path Section %@", section) 
} 

I 각 섹션의 1 행 2 개 섹션 테이블을 가지고

override func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell? { 
    NSLog("Index Path %@", indexPath) 
    // Index Path <NSIndexPath: 0x1666d1d0> {length = 2, path = 0 - 0} 

    NSLog("Index Path Section %@", indexPath.section) 
    // Index Path Section (null) 

this question 따라 I 또한 섹션 값을 액세스하는 다음 시도했다. 첫 번째 반복에서 path = 0 - 0 인 경우 로그에 Index Path Section (null)이 표시됩니다. 두 번째 반복에서는 path = 1 - 0 프로그램이 충돌합니다.

복잡한 작업을 수행하려고하지 않고 섹션 값에 액세스해야 올바른 조건의 셀을 조건부로 반환 할 수 있습니다.

답변

6

섹션 값에 올바르게 액세스하고 있습니다. 당신은 잘못된 방향으로 인쇄하고 있습니다.

section는 단면 값 0 유사하므로 (null) 인쇄 NSLog("Index Path Section %d", indexPath.section)

스위프트

단지 변경 로그 Int이다 NSInteger의 유형을 갖는다. 1이 유효 객체 포인터가 아니기 때문에 추락했습니다.

+0

감사합니다. 직접 알아낼 수있었습니다. 이제는 셀을 큐에서 제거하는 데 문제가 있습니다. 그러나이 첫 번째 시드의 컴파일러는 실제로 많은 것을 제공하지 않습니다! – PassKit

+0

예 ... ObjC 코드에서 컴파일러가 경고하고 해결 방법을 제안합니다 ... –

+0

또는 NSLog 대신 print() 및 println() 메서드를 사용하십시오. println ("인덱스 경로 섹션 \\ (indexPath.section)") – sketchyTech