본문 바로가기

오브젝티브 C

Objective C 우린 왜 굳이 오브젝티브-C를 배워야 할까? # 재미있는 언어 Objective-C 여러분들께서는 오브젝티브-C를 어떻게 생각하시나요? 언어의 역사와 배경을 아는 것이 정말 무의미해 보일지 모르겠지만, 오브젝티브-C의 탄생 배경을 살펴보면 재미난 점도 많고, 사용하면서 부딪힐 의문에 대해서도 더 많이 이해하게 될 수 있습니다. 그럼 오브젝티브-C는 어떻게 태어났는지, 왜 제대로 알고 써야 할지 생각해 볼까요? # Objective-C는 어떻게 탄생하고 발전해왔을까? 오브젝티브-C는 ‘객체 지향 프로그래밍 C언어 [Object-Oriented Programming in C, OOPC]’라는 이름으로 시작된 언어입니다. 즉, C를 객체 지향 언어로 발전시킨 것으로, 1983년에 발표되었습니다. 당시 사람들은 구조적 프로그래밍 습관에 따라 프로그래밍을 .. 더보기
iOS개발하기 #29. 경고창 (UIAlertView) 오늘의 주제 1. UIAlertView 스물 아홉번째 시간입니다.^^ 지난 번까지는 웹뷰에 대해서 알아보았습니다. 이번에는 AlertView에 대해서 알아보도록 하겠습니다. AlertView는 xib에서 생성이 되지 않고 코드로 생성을 해 주어야 합니다.ㅎ 그럼 일단 시작해 봅시다~! # UIAlertView 자, 일단 AlertView는 delegate가 없으면 무용지물입니다. 이녀석은 그냥 얼굴만 비출 뿐 아무것도 하지 않으려고 합니다. 그래서 우리는 ViewControllerForWeb에게 AlertView의 델리게이트를 해달라고 말할거예요. 자, 그리고 AlertView도 하나가 아니면 구분을 할 수 없기 때문에 태그를 넣어줄 예정이예요. 그래서 enum으로 먼저 어떻게 해줄지 정해줍니다. enu.. 더보기
iOS개발하기 #28. 웹뷰 (WebView) <2> - delegate 사용해 보기 오늘의 주제 1. UIWebView 2. UIWebViewDelegate 스물 여덟번째 시간입니다.^^ 지난 번에는 웹뷰를 만들고 화면에 웹페이지를 띄워 만들어 보았습니다. 자 그럼 오늘은 웹뷰와 함께 이것저것 해 보아야 겠지요?ㅎ 긴 말 없이 시작해 봅니다 ㅎㅎ p.s. 추천 한 방 어떠세요?ㅎ # UIWebView - delegate 웹뷰를 화면에까지 띄워보았으니 이제는 앞으로 가기 뒤로가기 등,... 버튼 동작들을 구현해 봅니다. 자, 일단은 지난번에 버튼들에 태그를 달아 두었던 것 기억하시죠? 그 태그를 보다 직관적으로 표현해 보기 위하여 #define과 enum을 사용하여 구현해 보았습니다. #define과 enum은 뭐냐구요? 아... 음... C에서 나오는 녀석들인데, 제가 C 카테고리에서 .. 더보기
iOS개발하기 #27. 웹뷰 (WebView) <1> 오늘의 주제 1. UIWebView 2. UIToolBar 스물 일곱번째 시간입니다.^^ 지난 번까지는 프로젝트를 계속 사용했는데, 이번에 새로 프로젝트를 하나 만들어 보겠습니다. 어찌되었든간 지난 번 까지 했던 내용들은 마음에 드셨는지 모르겠습니다...^^ 지금까지 해 본것들은 예제이고 앞으로도 예제를 통해 내용이 진행되니, 디자인이 이쁘지 않더라도, 지금 당장 뭐가 없어보여도 쭉 한번 따라해 보세요..^^ 그럼 어느순간 머릿속에 정리가 되고 느낌이 올 때가 있습니다. 그 때, 필요한 것들만 검색하고 취합해서 자신만의 프로젝트를 만들어 가시면 됩니다. 아직 그정도는 안온 것 같죠?ㅎ 그럼 오늘 또 새로운 세상을 향하여 한 걸음 내딛어 봅시다^^ 출발~! # UIWebView, UIToolBar UIWe.. 더보기
Objective C <11>. 딕셔너리, 배열 ( NSDictionary, NSArray ) 오늘의 주제 1. NSDictionary, NSMutableDictionary 2. NSArray, NSMutableArray 열 한번째 시간입니다.^^ 지난 번에는 상속이라는 또 하나의 중요한 개념에 대하여 알아보았습니다. 이번에는 Objective-C에서 가장 흔하고 많이 쓰이는 클래스 중에 자료를 보관할 수 있는 녀석들에 대해 알아보도록 하려고 합니다. 딕셔너리랑 배열인데요, 한 번 봅시다~ 어휴~ 봄감기 때문에 아주 죽겠네요+_+ # NSArray 배열이란??? C를 배운 분들이라면 배열을 아실겁니다 ㅎ 하지만 여기서 말하는 녀석은 메소드까지 가지고 있는 클래스 입니다. 단순한 자료형이 아니죠~ 뭐 약간의 사용개념을 보면 C의 Linked-List(연결 리스트)와 비슷하다고 생각하시면 되겠습니다~.. 더보기
Objective C <10>. 상속(2) - 오버라이딩 오늘의 주제 1. 오버라이딩(재정의) 열 번째 시간입니다.^^ 상속의 개념에 대해서는 조금 잡히셨나요? 아직 잘 모르시겠다면 2012/03/28 - [Objective-C] - Objective C . 상속(1) 요기서 다시 한 번! 자 그럼 오늘은 상속에 대해서 조금만 더 알아봅시다 ㅎ 스따뚜~~~~~~~~~~~~ # 오버라이딩(재정의)? 오버라이딩 : 재정의 오버라이딩이 뭘까요? 지난번에 상속에 대해서 이야기 할 때, 자식은 부모에게 물려받은 것들을 필요에 의해 부분적으로 바꿔 쓸 수 있다고 했던 것 기억하시나요? 바로 그것을 말합니다. 메소드를 부모가 물려준 그대로 사용할 수도 있지만, 자신의 목적에 맞게 재정의해서 사용할 수 있습니다. 즉, 같은 이름의 메소드를 물려받은 녀석에서 덮어씌울 수 있단.. 더보기
Objective C <9>. 상속(1) 오늘의 주제 1. 상속의 개념 아홉번째 시간입니다.^^ Objective-C는 정말 오랜만이네요..^^ 초코찌찌님의 요청으로 새로운 개념을 하나 가지고 왔습니다~ 지난 번에는 메소드에 대해 알아보았습니다~ 이번에는 클래스의 상속에 대해 알아보도록 합니다.^^ 이 포스팅은 지난 2012/01/30 - [Objective-C] - Objective C . 클래스와 객체(인스턴스)2012/02/05 - [Objective-C] - Objective C . 클래스와 객체(인스턴스)이 두개의 포스팅 지식을 필요로 합니다~ 다 알고 계신가요?ㅎ 그렇다면 고고고고고고고고~~~~~~무비무비무비~~~~~~ # 상속이란? 상속이란 무엇일까요? 저는 쉽게 한마디로 말하면, 클래스의 확장 이라고 표현하고 싶네요. 즉, 이미 .. 더보기
iOS개발하기 #18. Delegate, Data Source (1)개념잡기 오늘의 주제 1. Delegate 2. Data Source 열 여덟번째 시간입니다.^^ 지난 번에는 맵뷰를 간단히 만들어 보았습니다~ 정말 더 필요한거 없어요? 아무도 댓글도 반응도 추천도 없습니다... 저 블로그 접을까봐요...ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 이번에는 중요한 개념중에 하나인 Delegate와 Data Source에 대하여 알아보도록 하겠습니다~ 중요한 개념이므로 이해 될 때 까지~! 스따뚜~~~~~~~~~~~~ # Delegate??? Delegate. 델리게이트. 우리말로 번역하면 대리자 정도로 해석할 수 있겠네요. 말 그대로 Delegate는 누군가가 해야 할일을 대신 해주는 녀석이라고 생각하시면 됩니다. 조력자가 되겠지요. 말로만 이렇게 설명하면 잘 감이 안오시죠? 간단히 그림으로 알아봅.. 더보기
Objective C <8>. 메소드의 선언과 반환값 오늘의 주제 1. 메소드 선언하고 구현하기 2. 메소드 인자 전달하기 3. 반환값(return값)에 대해 알기 여덟번째 시간입니다.^^ 정말 오랜만의 포스팅입니다...ㅋ 오늘은 제 동생의 생일이랍니다!!! 뭐... 그렇다구요 ㅋㅋㅋㅋㅋㅋ 지난 번에는 이름짓기에 대해 조금 알아보았습니다. 처음부터 이름을 잘 짓는 습관이 필요합니다. 귀찮다고 a, b, c 이런식으로 이름 지어놓으면 같이 일하는 동료는 물론 자신 스스로도 하루만 지나도 코드를 읽을 수 없습니다...ㅋㅋ 자 그럼 잔소리 생략하고 설명 들어갑니다~ 참..! 이거 보시기 전에 지난 포스트 2012/02/05 - [Objective-C] - Objective C . 클래스와 객체(인스턴스) 를 보고오시기를 추천드립니다^^ 스따뚜~~~~~~~~~~~.. 더보기
Objective C <7>. 이름짓기 오늘의 주제 1. 명명법 일곱번째 시간입니다.^^ 두 번에 걸쳐 클래스와 객체에 대하여 알아보았습니다. 이해가 잘 가시는지요? 정말 중요한 것이니 꼭 이해하고 넘어가셔야 합니다~! 이제 클래스랑 객체가 뭔지 알게 되었으니 그녀석들의 이름은 어떻게 지어야 하는지 알아보는 시간을 가져보도록 할게요^^ 출바알~~~~~~~~~ # 이름짓기 오늘은 클래스, 인스턴스, 메소드 등의 이름을 어떻게 지어야 할까에 대한 이야기를 해볼까 합니다. 이름짓기... 참 어렵죠 ㅎㅎ 오죽하면 프로그래머가 이름짓기의 도사라는 말이 나올까요-ㅋㅋㅋ 사람 이름은 돈까지 내면서 짓곤 하는데... 이녀석들도 우리의 혼을 불어넣어 만드는 녀석들이니 그만큼 깔쌈하게 이름을 지어줘야 하지 않겠습니까?ㅋㅋ 농담이구요~ 이름을 짓는 방법에 대해 .. 더보기
iOS개발하기 #15. 화면전환(1) <addSubview> 오늘의 주제 1. 뷰 위에 뷰 얹어보기 열 다섯번째 시간입니다.^^ 지난 번까지는 네비게이션 컨트롤러에 대해 알아보고, 주석다는 방법에 대해 좀 알아보았습니다. 요즘들어 너무 바빠서 몸이 다섯개라도 모자랄지경입니다 ㅠㅠ 포스팅도 너무 뜸한거 같아 슬프네요 ㅠㅠㅠ 자 그럼 오늘은 화면을 바꿔보는 방법 중에 하나인 뷰 얹고 없애기를 한 번 해보도록 할게요~ 스따뚜~~~~~~~~~~~~ # 새로운 프로젝트 생성 지난 번 까지는 iOS5에는 최적화되지 않은 코드였습니다. 물론 최적화되지 않은 코드들에 대한 설명은 거의 하지 않았으니 헷갈릴까 걱정하실 필요는 없습니다용 ㅎㅎ 일단 새로운 프로젝트를 생성합니다~ Tabbed Application 을 선택합니다~ 이 프로젝트로 꽤 오랜시간 포스팅 진행하게 될 듯 합니.. 더보기
Objective C <6>. 클래스와 객체(인스턴스)<2> 오늘의 주제 1. Class 만들어보기 2. Class Method, Getter, Setter, Instance Method... 여섯 번째 시간입니다.^^ 지난 번에클래스와 인스턴스에 관한 개요를 알아보았습니다. 하지만, 말로만 듣고는 잘 감이 안오시지요? 물론 이번 포스팅을 보아도 아리송 하실 수 있습니다. 정말 짧은 코드이지만 많은 내용이 담겨져 있으니 이번 포스팅도 보고 또 보셔야 할 듯 합니다^^ 정말 중요한 것이니 몇 번을 보고, 다른 싸이트를 검색하고, 직접 계속 둘러보면서 꼭 몸으로 익히도록 하세요~! 자 그럼 오늘은 직접 클래스를 한 번 만들어 보도록 합시다~ 출바알~~~~~~~~~~~~ # Class 만들어 보기 자... 새로운 프로젝트를 만들고 아래 그림처럼 새로운 클래스 생성을 위.. 더보기
Objective C <5>. 클래스와 객체(인스턴스)<1> 오늘의 주제 1. Class? Object? 다섯 번째 시간입니다.^^ 이제까지는 정말 Objective C를 배웠다고 하지도 못할 정도로 아주 기초적인 내용을 다루어 보았습니다. 지난 번에는 실수 표현방법에 대해 알아보았습니다. 조금 도움이 되셨는지요?? 나중에 언젠가는 꼭 필요한 날이 올테니 알아두시길~!^^ 지금부터 몇 번에 걸쳐 포스팅할 내용들(클래스, 메소드, 인스턴스 등등)의 내용만 이해를 하신다면, "나 Objective C 70%는 이해했어" 라고 말하실 수 있을거예요. 정말 중요한 것이니 몇 번을 보고, 다른 싸이트를 검색하고, 직접 계속 생각하며 익히도록 하세요~! iOS Dev 포스팅의 클래스와 객체 챕터를 인용하여 조금 더 설명을 추가하여 보았습니다. 힘겨운 발걸음을 한 번 떼어 볼.. 더보기
iOS개발하기 #14. 주석(Comment) 오늘의 주제 1. 주석 ( Comment, 코멘트 ) 열 네번째 시간입니다.^^ 정말 오랜만에 뵙겠습니다... 알고 계시다 시피 저의 맥북 에어가 구입한지 일년도 되지 않았는데... 누군가 슬쩍 해 갔습니다...ㅠㅠ 어흑... 일단 핑계지만... 어흑..ㅠㅠ 여튼... 다시 차근차근 포스팅 해 보려 합니다. 탭 뷰 컨트롤러, 네비게이션 컨트롤러 등을 쭈욱 살펴 왔었는데... 잠시 딴얘기 한 번 해보려 합니다. 저도 좀 더 빨리빨리 이것저것 써보고 싶지만, 중요하다고 생각하는 만큼 빼놓고 갈 수가 없네요..^^ 사실 Objective C와 C 포스팅 중간에 다 들어가 있습니다. 그런데 여기 또 다시 캡쳐하기도 거시기 해서 Objective-C 포스팅에서 퍼왔습니다. 기본적인 내용은 동일 하므로, 제가 저기.. 더보기
iOS개발하기 #13. Navigation Controller(2). 네비게이션 컨트롤러(2) 오늘의 주제 1. 네비게이션 아이템 커스터마이징 열 세번째 시간입니다.^^ 지난 번에는 네비게이션 컨트롤러 사용방법을 알아보았습니다. 조금 이해는 되시나요? 잘 이해는 안되시더라도, 조금씩 조금씩 따라오다 보면 언제쯤엔가 약간 감이 잡히실 거예요 ㅎㅎㅎ 사실 원론적인 이야기들을 쫘악 펼쳐놓고 첨부터 이게 뭐다 저게 뭐다 하기 보다는 이게 더 나을것 같아서요. 깊게 들어가면 잘 못따라 올지도 몰라요..ㅎㅎ 흥미도 훅 떨어지구요 ㅎㅎㅎ 궁금한 사항들이 있으면 댓글 남겨주시면 최대한 상세하게 알려드리도록 하겠습니다 ㅎ 자 그럼 오늘은 네비게이션 아이템들을 약간 커스터마이징 해보죠^^ 스따뚜~~~~~~~~~~~~ # 네비게이션 아이템이란? 네비게이션 아이템이란 개발문서에서 살펴보면 The UINavigation.. 더보기
Objective C <4>. 실수 표현 방법 오늘의 주제 1. 실수 표현 방법 네 번째 시간입니다. 이번에는 사실 그다지 중요하지 않은 포스팅입니다. 그냥 해보는 깨알같은 팁!?ㅋㅋㅋ 서론 필요 없고 실습 시작입니다~! # 실수 표현 방법 일단 새로운 프로젝트를 만들고 아래와 같은 코드를 입력하여 봅니다. 결과 출력 화면입니다. 간단하게 코드를 설명하자면... 일단 printf안에 %%라고 표현 한것은 로그에 %가 찍히게 하기 위함입니다... 뭐~ 그냥 그렇다구요 ㅎㅎ %lf는 double형 실수를 표현하기 위한 출력 형식 지정자라는 것은 알고 계시죠?ㅎㅎ 그냥 %lf하면 컴파일러나 프로세서마다 다르겠지만 3532.0483940000... 이런식으로 대책없이 나오는 것이 보통입니다. 그래서 좀 더 깔끔하게 출력을 하고 싶으신 분들이 있으실 겁니다... 더보기
Objective C <3>. 변수. Variable 오늘의 주제 1. 변수 알아보기 세 번째 시간입니다. 안녕하세요! 야곰입니다.ㅎㅎ 벌써 세 번째 시간이네요 ㅎㅎㅎ Objective-C는 C를 기반으로 하며 이런저런것들이 추가되고 빠지고 한 것이기 때문에 C에서 기초되어 쓰이는 것들이 많습니다. 그래서 오늘은 C에서 나오는 변수들에 대해 조금 알아보겠습니다. C가 그냥 커피라면 Objective-C는 T.O.P라 이거죠 ㅋㅋㅋㅋㅋㅋㅋ 긴말 필요없고 본론으로 들어가죠 ㅋㅋㅋ # 변수가 뭐냐? 변수라는 것은 자료를 담아 둘 수 있는 기억공간이라고 생각하시면 됩니다. 컴퓨터는 무슨 일을 처리하기 전에 주기억장치, 즉, RAM에 정보를 올려놓고 맞춰진 스케줄 대로 CPU에서 연산처리 하게 됩니다.(물론 상세히는 좀 더 복잡하고 다를 수 있지만 대충 그렇다고 생.. 더보기
iOS개발하기 #11. Document. 도큐먼트 오늘의 주제 1. Document 살펴보기 열한 번째 시간입니다. 지난 번에는 탭바를 기반으로 한 어플 하나를 만들어 보았습니다~ 이 당분간은 이 탭바를 가지고 진행할 예정이오니 프로젝트를 지우지 마시고 계속 따라와 주세요~!ㅎㅎ 이제 슬슬 재미좀 붙이고 계신지 모르겠네요^^ 오늘은 개발에 꼭 필요한 문서를 보는 방법을 알려드리려 합니다~ 물고기를 잡아드리는 것이 아니라 잡는 법을 좀 알려드려야겠죠?ㅎ 이 Document에는 개발에 필요한 첫 밑거름 부터 심오한 내용까지 모두 담겨져 있습니다. 이 개발 문서만 가지고도 충분히 개발할 만한 강력한 무기입니다. 물론 영어라서 조금의 힘든점은 있지만, 그래도 사용할 줄 알아야 합니다! 서론이 길었네요 ㅎ 시작합니다~! # 개발문서 개발 문서는 요로코롬 생겼습니.. 더보기
Objective C <2>. 주석(Comment) 오늘의 주제 1. 코드에 주석쓰기 두 번째 시간입니다. 안녕하세요! 야곰입니다.ㅎㅎ # 주석 주석이 무엇인가 궁금하시죠?ㅎ 다른 블로그나 책에서 한 챕터를 잡고 주석을 설명하는 경우는 거의 없습니다만.. 주석은 생각 외로 굉장히 중요한 역할을 하며, 프로그래밍의 첫 습관을 들일때 매우 중요한 녀석이라고 생각합니다. 물론 실무에서도 굉장히 중요합니다. 그래서 주석은 한 챕터로 잡고 설명하려 합니다!! 오늘 포스팅은 짧습니다만, 꼭 기억해 두셔야 할 포스팅입니다^^* 주석.. 코멘트.. 같은 말입니다! 주석은 코드에 아무런 영향을 미치지 않지만, 이 코드가 어떤 코드인지, 무슨 역할을 하는 것인지에 대한 설명을 적어놓는 메모 같은 것입니다. 그런데 이게 왜 중요하냐구요? 정말 간단한 프로그램이라면 굳이 필요.. 더보기
Objective C <1>. Hello, World! 오늘의 주제 1. Hello, World 콘솔에 찍어보기 첫 번째 시간입니다. 안녕하세요! 야곰입니다.ㅎㅎ iOS 개발 포스팅을 하다보니 조금 더 상세히 알고 싶거나, 기초를 좀 더 다지고 싶으신 분들이 있을 것 같아 이렇게 Objective-C 언어도 포스팅을 시작합니다. 사실 C 또는 C++만 잘 알고 있어도 iOS개발에 큰 무리는 없습니다. 물론 다른 언어를 써 보신분들도 마찬가지 일거구요. 절차지향적인 언어를 쓰던 분들은 헷갈리는 부분들이 있을텐데, 그것은 iOS 포스팅 중간중간 설명을 넣구요~ 뭐, 여하튼! 절차지향 언어인 C언어를 하니 객체지향 언어인 Objective-C를 한 번 해볼까 합니다. 물론 C++, C#, JAVA 등등 많은 언어들이 있지만! 여기는 iOS 개발부터 시작한 블로그니.. 더보기