본문 바로가기

iOS/Objective C

(3)
[Objective-C] 3. 프로토콜(Protocol) 1. 프로토콜(Protocol) 프로토콜은 선언만 되고 구현이 되지 않은 객체 지향의 흔한 개념인 인터페이스를 의미한다. 작성법은 다음과 같다. @Protocol 프로토콜명 : NSObject 메서드 정의 @end 이런 프로토콜은 다른 클래스에서 구현할 수 있다. 이 때, '프로토콜을 따른다'라고 표현한다. 2. 프로토콜(Protocol)을 따르는 클래스 Flyable.h @protocol Flyable - (void)fly; @end KingFisher.h @interace KingFisher @end KingFisher.m @implementation KingFisher - (void)fly { NSLog(@"Fly High"); } @end 3. Delegate Pattern Delegate Pat..
[Objective-C] 2. Class - Method & Property 1. 개요 클래스가 무엇인지 설명하기보다는 어떻게 작성하면 될 지를 위주로 설명합니다. 2. 기본 작성법 Objective C는 헤더 파일과 구현 파일로 나뉜다. 먼저 헤더 파일을 작성해보자. Human.h #import @interface Human: NSObject { - (void)print:(NSString *)message; + (void)printWithName:(NSString *)name message:(NSString *)message; } 먼저 헤더 파일에서는 클래스의 설계를 작성한다. 흔한 객체 지향 언어에서 class '클래스명'의 문법이 아닌 @interface '클래스명'의 문법을 가진다. 그리고, NSObject는 Objective-C의 루트 클래스로 Objective-C의 런..
[Objective-C] 1. 개요 1. 개요 과거 애플의 프로그래밍 언어로 활용되었다. 현재도 일부 기업에서 활용되는 상황이다. 최근 iOS 개발을 하게 되어 Objective C에 대해 정리하면 좋을 것 같아 앞으로 블로그에 기록해보려고 한다. 2. 특징 C의 확장 C언어에서 단순히 객체 지향 패러다임을 추가한 형태이다. 순수 C 코드를 그대로 활용할 수 있다. 이런 객체 지향 개념을 추가하기 위해 별도의 런타임이 필요하다. JVM 처럼 가상 머신을 활용하는 형식은 아니고, 단순히 라이브러리를 링크하는 것이다. 구조체 Objective C의 모든 객체는 사실 구조체로 이루어져있다. 객체의 존재하는 메서드는 해당 메서드의 구현체(함수)로의 함수 포인터를 구조체 안의 리스트 형태로 들고 있다. 따라서, 객체의 메서드를 호출하면 구조체의 리..