2017-02-03 1 views
0

스위프트 3을 사용하면 UITableView의 func tableView(_ tableView: UITableView, cellForRowAt indexPath: @autoclosure @escaping IndexPath) -> UITableViewCell이 호출되고 있습니다. 이 기능을 누가 호출하는지 추적하고 싶습니다. 내가 아는 한이 셀은 표시 할 셀이 필요한 경우에만 호출됩니다. 그러나 stacktrace에서 override internal func tableView(_ tableView: UITableView, numberOfRowsInSection section: @autoclosure @escaping Int) -> Int은 호출되지 않으며 스택 추적이 없습니다. 누군가가 파고 시작할 곳을 조언 할 수 있습니까? 감사!cellForRowAtIndexPath가 스택 트레이스없이 호출되었지만

이 참조는 기본적으로 스크린 샷 No Stacktrace

+0

'numberOfSections' (또는'numberOfRowsInSection')가 호출되지 않는 이유는 무엇입니까? – rmaddy

+0

'numberOfRowsInSection'에 중단 점을 넣었습니다. 결코 호출되지 않았습니다 – chlkdst

+0

올바른 서명이 맞습니까? 관련 코드로 질문을 업데이트하십시오. – rmaddy

답변

1

를 부착, 당신은 단지 디버그 기호를 포함하는 스택 추적을 참조하십시오. 따라서 여기에 많은 프레임 워크 내부가 표시되지 않습니다.

Enable/Disable full stack trace

(에서 :

모든를 보려면, 디버그 기호 없이도 방법을 사용합니다 오른쪽에서 스택 추적 창 아래, 세 번째 위치에 작은 버튼이 있습니다 사실, Xcode 버전에 따라 달라지며, 이전 버전에서는 스택 추적에 세부 정보를 표시하는 일종의 슬라이더가 있습니다.

+0

디버그 탐색기에서 해당 옵션을 선택 했으므로 스택 트레이스를 확인하십시오. 아직도 운이 없다. numberOfRowInSection은 스택 트레이스에도 포함되지 않습니다. – chlkdst

+1

분명히 아닙니다. 'numberOfRows : inSection'은 테이블 뷰 _before_'cellForRow : atIndexPath'에 의해 호출 될 것이므로 stacktrace에 있어야하는 것은 아닙니다. –

+0

그래, 이제 알았어. 항상 numberOfRows : inSection이 스택 트레이스에있는 경우. 내 주요 문제는 누가'cellForRow : atIndexPath'를 유발하는지 모른다. – chlkdst

0

@AndreasOetjen은 UIKit Framework 클래스에서 get 메서드가 호출 되었기 때문에 정상적인 동작입니다. 이 프레임 워크의 호출 스택은 기본적으로 숨겨져 있으며 언급 된 버튼으로 선택 될 수 있습니다.

관련 문제