본문 바로가기

전체 글

(341)
[Objective-C] 3. 카테고리와 프로토콜 Chapter 3. 카테고리와 프로토콜카테고리를 사용하여 모듈 방식으로 클래스에 메서드를 추가하자. 프로토콜을 사용하여 다른 사람들이 구현할 메서드의 표준화된 목록을 만들자. 카테고리란 무엇인가( What ) 카테고리는 클래스 정의를 그룹짓거나 연관된 메서드를 묶어 쉽게 모듈화할 수 있게 해준다. 또 원본 소스코드에 접근하거나 서브 클래스를 생성하지 않고도 현존하는 클래스의 정의를 쉽게 확장할 수 있다. 어떻게 사용하는가 ( How ) @interface Fraction (MathOps) MathOps라는 카테고리를 만들었다. 인터페이스 지시어를 써주고 클래스 명 다음에 카테고리명을 적어주는 방식이다. 이를 구현할 때도 마찬가지로, @implementation Fraction (MathOps) 라고 해준..
[Objective-C] 2. 클래스에 대해서, 프로퍼티 Chapter 2. 클래스에 대해서, 프로퍼티 Objective-C 소스 파일(구현부)은 .m을 확장자로 한다. 헤더파일은 (.h)의 확장자를 갖는다. 헤더파일과 구현 파일 두 개가 합쳐서 클래스를 구성한다. Objective-C 컴파일러는 두 개의 파일을 개별적으로 컴파일한다. #import vs #include ifdef를 기억하는가? #include는 중복되어 include되는 헤더 파일을 파악하지 못해 ifdef를 통해 이를 해결해야 했지만, #import 지시어는 여러 번 같은 클래스를 import ( include ) 하여도 중복되는 것은 무시한다. 헤더 파일의 #import 와 구현 파일의 #import “header.h”에서‘꺾쇠'와 'double quote, 큰 따옴표'의 차이는 무엇인가..
[Objective-C] 1. Prefix와 메소드 선언, 호출 Chapter 1. Prefix 와 메소드 선언, 호출 Primitive type을 제외한 Type과 상수id : 타입과 관계없이 객체(Object)를 가리킴 void의 포인터로 어떤 자료형이든 다 받아주는 자료형이다. event 발생 시 호출될 메소드들은 return value를 IBAction으로 해서 glue coding을 할 수 있도록 메소드의 시그니처를 선언해줘야 한다.BOOL : char 와 형식은 같지만 불리언 값으로 사용된다.nil : NIl : NULL+ IBOutlet : 클래스 선언을 읽을 때 인터페이스 빌더에 인식시키는 키워드+ IBAction : void 타입. 인터페이스 빌더에 인식시키기 위한 키워드 NS의 정체 Objective - C 언어는 NeXTSTEP을 뿌릴로 두고 있기..
그것에 대해서, 우리가 태어나기 전부터 상영되고 있는 영화가 있다. 어릴 때는 이 영화가 존재하는지도 몰랐다. 점차 자라나면서 그런게 있나 정도로 알게 된다. 그러든 말든 이 영화는 상영되어 왔고 지금도 절찬리에 상영 중이다. 이 영화는 특별하게 4D로 제작되어서, 영화를 보고 있지 않아도 우리 삶에 영향을 끼친다. 영화 속 배우들의 몇 마디로 물건 값이 오르고 공항이 생기고 여러 가지 정책들이 생겨나 우리의 일상에 깊숙히 침투한다. 이 영화의 특별한 점이 한 가지 더 있다. 관객이 일정한 주기에 맞춰 이 영화의 감독을 뽑을 수 있다는 것이다. 감독도 마찬가지로 감독이 되기 위해 관객들에게 자신의 영화 시나리오를 홍보한다. 이 시나리오의 대부분은 '사기'다. 어찌됬든 관객들은 예비 감독들의 시나리오들을 보거나, 자신이 ..
[iOS_Intro] 4. 데이터 ( 코어 데이터 ) Chapter 4. 코어데이터 - 데이터 저장하기 plist plist는 property list의 줄임말로, MAC, iOS 프로그래밍 전용의 속성 리스트로 코어 파운데이션 형식을 이용해서 데이터를 관리할 수 있는 자료구조의 일종이다. Xcode에서 새로운 프로젝트를 만들 때, Info.plist가 만들어진다. Info.plist는 앱 아이콘뿐만 아니라 애플리케이션이 로드할 메인 스토리보드 파일, 애블리케이션 버전 등의 정보를 포함한다. 이 plist는 Xcode를 이용하여 만들고 편집할 수 있다. 코어데이터 ( Core Data ) 코어데이터는 객체와 조합을 이룬다. 코어 데이터의 기능 데이터를 로딩하거나 저장할 수 있는 기능 객체를 로드하고 저장하는 기능 다양한 방식으로의 데이터 저장 되돌리기, 다..
[iOS_Intro] 3. 테이블, 뷰 Chapter 3. 테이블, 뷰계층 데이터 일반적으로 데이터는 부모-자식 관계, 즉 고수준 데이터와 상세 데이터로 구성될 때가 많다. 이런 데이터를 계층 데이터라고 부르며 이를 테이블 뷰와 상세 뷰를 나누어 해결할 수 있다. 각 뷰를 어떻게 활용할 지는 사용자에게 전달하려는 것이 무엇인가? 사용자는 뷰와 어떻게 상호작용할 것인가 이 두 가지를 생각하여 결정해야한다. 하나의 함수가 하나의 역할만 하도록 함수를 설계하듯이 한 화면에서는 한 번에 한 태스크만 집중할 수 있도록 뷰를 설계하는 것이 좋다. 각 뷰는 특별한 목적이 있어야 하며, 필요한 정보를 사용자가 쉽게 이해하고, 사용할 수 있도록 뷰를 설계해야 하는 것이다. 이러한 각각의 규칙을 애플에서 제정해놓은 문서가 있는데, 그것이 HIG ( Human ..
[iOS_Intro] 2. Objectice - C의 기본 문법 Chapter 2. Objective - C 기본 문법 정리 클래스 : 인터페이스와 구현헤더파일에서는 클래스의 인터페이스를 정의한다. 어떤 클래스를 상속받는지, 클래스의 인스턴스 변수, 프로퍼티, 메소드 등을 정의한다. 메서드와 프로퍼티는 @interface와 @end 사이에 위치한다. 123456789#import @interface ViewController : UIViewController { UITextField *notesFiled_;}@property (weak, nonatomic) IBOutlet UITextView *tweetTextView; - (IBAction)postItButtonPressed:(id)sender; @endColored by Color Scriptercs #import..
[iOS_Intro] 1. iOS Application의 구조 Chapter 1. iOS Application StructureiOS Application은 기본적으로 Objective-C ( 오브젝티브 C )라는 언어로 이루어져 있다. 오브젝티브 C는 스몰톡에서 파생된 객체 지향 언이이다. C를 기반으로 하는 언어이므로, 루프, 형식, 포인터 등의 모든 문법이 C와 같다. 넥스트스탭, 오픈 스텝 코코아터치에 이르는 애플의 역사와 유산을 물려받은 언어이다. iOS 5 버전부터 ARC라는 자동 메모리 관리 도구가 적용되었다. 더 이상 메모리 누수를 막으려고 카운트 레퍼런스를 사용할 필요가 없다. 오브젝티브 C 클래스는 보통 헤더파일과 구현 파일을 포함한다. 헤더 파일은 클래스의 공개 인터페이스 즉, API를 정의한다. 구현 파일은 말 그대로 클래스의 실체를 구현하는,..