간단한 질문입니다. UITableViewController를 하위 클래스로 만들면 UITableView가 자동으로 위임/데이터 소스를 내 클래스에 설정한다는 것을 알게되었습니다. 코드 정확성을 위해 클래스에 테이블 뷰 대리자/데이터 소스를 수동으로 설정해야합니까, 그렇지 않으면 예상되는 동작입니까?UITableView 대리인/데이터 원본 기본값
감사합니다.
간단한 질문입니다. UITableViewController를 하위 클래스로 만들면 UITableView가 자동으로 위임/데이터 소스를 내 클래스에 설정한다는 것을 알게되었습니다. 코드 정확성을 위해 클래스에 테이블 뷰 대리자/데이터 소스를 수동으로 설정해야합니까, 그렇지 않으면 예상되는 동작입니까?UITableView 대리인/데이터 원본 기본값
감사합니다.
예 예기치 않은 동작입니다. 있는 UITableViewController 클래스는 테이블 뷰를 관리하는 컨트롤러 객체를 생성
개요 :
특히 단락 "개요"에, 문서의 here 자세히 설명되어 있습니다.
[...] 테이블 뷰를 포함하는 펜촉 파일이로드되면, 데이터 소스 및 nib 파일에 정의 된 객체가 위임
(존재하는 경우에는 다음과 같은 동작을 구현 어떤). nib 파일이 지정되지 않았거나 nib 파일에 데이터 소스 나 위임이 정의되어 있지 않은 경우 인 경우
UITableViewController
은 데이터 소스 및 테이블보기의 위임을 자체으로 설정합니다.
예. 그러면 자동으로 대리자 메서드가 설정됩니다. 내부적으로 그렇게하고 있기 때문입니다. 그것은 문서로 implenmentation
코딩의 경우 난데 :
@interface UITableViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>
그래서, 내부적 위임 방법을 설정하는 것입니다.
Errr ... UITableViewController' 전혀'delegate'과'은'tableView'의 dataSource' 속성이 자동으로'UITableViewController'에 관련이 있다는 것을 의미하지 않는다 이러한 프로토콜을 준수'사실 ! – AliSoftware
그렇습니다.하지만 그들은 때때로 내부적으로 관리하고 있습니다 ... –
나는 동의합니다.하지만 클래스 참조에서 인용 한 라인이 전혀 "증명하지"않는다고 말하면서 그 프로토콜 적합성을 가질 수있었습니다 그리고 아직도이 행동이 아닙니다;) – AliSoftware
UITableViewController에서 ViewController에 의해 생성 된 UITableView의 델리게이트 및 데이터 소스는 기본적으로 ViewController입니다.
자신 만의 UITableView를 만들면 데이터 소스를 할당하고 직접 위임해야합니다.
니스, 나는 문서에서 그것을 찾으려고했지만 맹세했다. 고맙습니다! – dccarmo