2010. 10. 2. 21:47
먼저 이 글은 모두 Head First iPhone Development 책을 읽고 내게 필요한 부분, 중요한 부분, 느낀점등을 잊지 않기위해, 나중에 글쓴이가 봤을 때 왜 이렇게 했었는지 등을 다시 한번 확인하기 위해 작성한것임을 밝힙니다.

컨트롤은 컨트롤마다 자신만의 Data Source 와 Delegate 를 가지고 있다고 했다.

그 고유의 Data Source 와 Delegate 를 프로토콜이라고 부른다.

Picker 를 예로 들어보겠다.

Picker 의 경우는 UIPickerViewDataSource 와 UIPickerViewDelegate 라는 Data Source 와 Delegate 를 가지고 있다.

이 둘 모두가 프로토콜이다.

프로토콜은 필수적인 메소드와 선택적으로 사용하는 메소드를 구분해준다.

예를 들어 UIPickerViewDataSource 프로토콜은 pickerview:numberOfRowsInComponent: 메소드를 필수 메소드로 요구한다.

하지만 UIPickerViewDelegate 프로토콜은 pickerView:titleForRow:forComponent: 메소드를 필수로 요구하지는 않는다.

그럼 컨트롤마다 어떤 프로토콜을 따라야하는지, 또한 어떤 메소드를 써야하는지를 어떻게 알수있을까?

답은 Developer Document 에 있다.

직접 UIPickerView 컨트롤을 찾아보자


바로 나온다.

마찬가지로 각 프로토콜에서 필수적으로 요구하는 메소드를 찾아보자.




검색하면 다 나온다.

검색부터 해보는 습관을 들이자.




'공부 > iPhone' 카테고리의 다른 글

자주 쓰이는 프로퍼티 (Property) 속성  (0) 2010.10.02
아이폰개발 용어 2  (0) 2010.10.02
피커 (Picker)  (0) 2010.10.02
애플 API문서 보기  (0) 2010.10.02
View-Based Application 실행 과정  (1) 2010.10.02
Posted by terebyte
2010. 10. 2. 21:12
먼저 이 글은 모두 Head First iPhone Development 책을 읽고 내게 필요한 부분, 중요한 부분, 느낀점등을 잊지 않기위해, 나중에 글쓴이가 봤을 때 왜 이렇게 했었는지 등을 다시 한번 확인하기 위해 작성한것임을 밝힙니다.

이분(?)이 피커(Picker)님이다.

Picker 나 Table 같이 데이터를 보여주는컨트롤들은 생명없는 인형다루듯 수족처럼 부리는게 아니고, 자아(?)가 있다.

내가 Picker 컨트롤을 생성하고 그 Picker에 데이터를 저장하고 이벤트발생시 처리할것들을 코딩하는게아니다.

컨트롤 스스로가 데이터를 요구하고 이벤트를 알려주므로 Data Source 파일과 Delegate 파일을 연결해주어야 한다.

Picker 의 경우는 몇 컬럼으로 되어있는지, 각 컬럼별로 몇 줄인지 등등을 Data Source 파일에게 요구를 한다.[각주:1]

따라서 Data Source 파일에 모두 적어주어야 한다.

각 컨트롤마다 Data Source 의 종류가 다른데 Picker는 UIPickerViewDatasource 라는 Data Source 를 필요로 한다.

마찬가지로 무언가 Picker 에 이벤트가 발생할경우에는 Delegate 에게 발생한 이벤트를 알려준다.

그럼 Delegate 는 이벤트를 해석하고 어떤 행동을 취해야할지를 Picker 에게 다시 알려준다.

Data Source 처럼 Delegate 도 컨트롤마다 종류가 다르며, Picker 의 경우는 UIPickerViewDelegate 라는 Delegate 를 필요로 한다.

이처럼 컨트롤들은 각자 자신만의 Data Source 와 Delegate 를 가지고 있다.

컨트롤들이 스스로 일을 처리할 수 있게 존중(?)해주자.
  1. 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
Posted by terebyte
2010. 10. 2. 20:55
먼저 이 글은 모두 Head First iPhone Development 책을 읽고 내게 필요한 부분, 중요한 부분, 느낀점등을 잊지 않기위해, 나중에 글쓴이가 봤을 때 왜 이렇게 했었는지 등을 다시 한번 확인하기 위해 작성한것임을 밝힙니다.

XCode에서 Help - Developer Documentation 메뉴를 보면 볼수있다.


단축키는 (Option + Command + ?)이다.




물론 문서는 전부 영어다.

하지만 기본적인 영어실력만 있다면 충분히 해석가능하니까 지레 겁먹지말고 좀 찾아보자.

검색하면 다 나온다.

'공부 > iPhone' 카테고리의 다른 글

아이폰개발 용어 2  (0) 2010.10.02
프로토콜 (Protocol)  (0) 2010.10.02
피커 (Picker)  (0) 2010.10.02
View-Based Application 실행 과정  (1) 2010.10.02
아이폰개발 용어 1  (1) 2010.10.02
Posted by terebyte