먼저 이 글은 모두 Head First iPhone Development 책을 읽고 내게 필요한 부분, 중요한 부분, 느낀점등을 잊지 않기위해, 나중에 글쓴이가 봤을 때 왜 이렇게 했었는지 등을 다시 한번 확인하기 위해 작성한것임을 밝힙니다.
Picker 나 Table 같이 데이터를 보여주는컨트롤들은 생명없는 인형다루듯 수족처럼 부리는게 아니고, 자아(?)가 있다.
내가 Picker 컨트롤을 생성하고 그 Picker에 데이터를 저장하고 이벤트발생시 처리할것들을 코딩하는게아니다.
컨트롤 스스로가 데이터를 요구하고 이벤트를 알려주므로 Data Source 파일과 Delegate 파일을 연결해주어야 한다.
따라서 Data Source 파일에 모두 적어주어야 한다.
각 컨트롤마다 Data Source 의 종류가 다른데 Picker는 UIPickerViewDatasource 라는 Data Source 를 필요로 한다.
마찬가지로 무언가 Picker 에 이벤트가 발생할경우에는 Delegate 에게 발생한 이벤트를 알려준다.
그럼 Delegate 는 이벤트를 해석하고 어떤 행동을 취해야할지를 Picker 에게 다시 알려준다.
Data Source 처럼 Delegate 도 컨트롤마다 종류가 다르며, Picker 의 경우는 UIPickerViewDelegate 라는 Delegate 를 필요로 한다.
이처럼 컨트롤들은 각자 자신만의 Data Source 와 Delegate 를 가지고 있다.
컨트롤들이 스스로 일을 처리할 수 있게 존중(?)해주자.
- Table 과 같은 기타 컨트롤들은 무슨 내용을 적어야하는지도 Data Source 에게 요구를 한다. 하지만 Picker 는 약간 특수한 경우로, 어떤 내용이 들어갈지를 Delegate 에게 요구한다. 그 이유는, Picker 는 다양하게 표현할수 있기 때문이다. 단순히 Data만 받아오지 않고 Delegate 에게 뷰의 형태로 받아온다. [본문으로]
'공부 > iPhone' 카테고리의 다른 글
아이폰개발 용어 2 (0) | 2010.10.02 |
---|---|
프로토콜 (Protocol) (0) | 2010.10.02 |
애플 API문서 보기 (0) | 2010.10.02 |
View-Based Application 실행 과정 (1) | 2010.10.02 |
아이폰개발 용어 1 (1) | 2010.10.02 |