본문 바로가기

컴퓨터 이야기/Xcode

MVC 모델에 관하여

우선 정리가 되지 않은 것임을 알려둔다. 

다른 view로 보면 내가 공부하면서 정리하는 글이다 ㅋㅋㅋ(난 늘 대화를 원하는 대화형인간이라며 자위를..)

아이폰 개발에 대한 책을 보는데  기본에 관하여 괜찮은 것 같아 정리해본다. 

아이패드 프로그래밍이라는 비교적 얇은 책을 보며 따라하다가 보니 기본적이 부족하여 아이폰 개발에 대한

1000페이지가 넘는 책을 이번에 구입해서 보고 있는데 사소한 것부터 개발에 대한 내용이 나와있어서

재미있게 보고 있다. 물론 이 책을 재미 있게 볼 수 있었던 것은 먼저 봤던 아이패드 프로그래밍이라는 책의

덕을 좀 봤다고 해야겠다. (역시 하고나면 필요없는 것은 없다. 기초든 고급 내용이든)

사설이 엄청 길었다. 정작 내용은 엄청 짧을 건데 --ㅋ


아이폰 개발에 필요한 MVC 모델에 대한 부분 중, Controller에 대한 이야기다.

 Controller에서 중요한 것은 Delegation, Target-Action, Notification이라고 말한다.

여기서 Delegation이라는 것은 사용자와 아이폰의 상호작용을 위하여 제공하는 SDK의 일부(맞나?--;)로서

실제 상호작용에 필요한 갖가지 개발에 사용될 수 있는 메서드를 제공하는 것이다.

기본적으로 프로젝트를 만들게 되면 선언은 <<프로젝트명>>Delegate.h (헤더파일)의 처음 부분에  

자동으로 생성되어있다. 

아마도 (맥북에서 확인을 하기가 힘들어서) <UIViewController>가 기본으로 등록이 되어있을 것이다.

착각했다. UIViewController가 기본으로 상속
(View based기준)되어있다. 기본으로 사용하는 델리게이트는

추가되어 있지 않고 그 뒤에 UITableViewController를 추가 한다고 하면, <UITableViewDelegate>와 같이

(안해줘도 됨, 그럼 제공하는 것을 쓸 수가 없게 되는 것이다.)

델리게이트를 써 넣어주면 되겠다. 그리고 나서 메서드를 실제 작성하는 .m파일에 해당 메서드를 가져와서

작업한다.  여기서 추가한 UITableViewController를 보자. 

이 델리게이트가 해주는 역할은 TableVIew에 대한 것이다. 하나만 예를 들면, 
tableView:didSelectedRowAtIndexPath:  와 같은 메서드이다. 행에 대한 정보를 해당 index를 제공하며

가져오는 메서드이다.

Target-Action, Notification의 내용은 추후에. 
(아직 안 읽어봐서 ...후후 네, 전 초보니까염)