본문 바로가기

Dev/iOS

공부

온라인강의 : http://www.econovation.co.kr/@page/school/online_list.asp?gubun=programming


한번씩은 봐보자. > https://developer.apple.com/library/ios/#referencelibrary/GettingStarted/Learning_Objective-C_A_Primer/index.html


Objective-C에서 사용되는 지시어

기존의 C/C++에서는 사용하지 않는 컴파일러 지시어가 Obj-C에는 존재한다. 이제 부터는

Obj-C에서 사용되는 여러 가지 컴파일러 지시어에 대해서 살펴보도록 하자. 각각의

지시어는 '@'문자로 시작한다. 아래와 같은 종류들이 있다.


@interface : 클래스 선언 시 사용한다.

@implementation : 클래스 구현 시 사용한다.

@protocol : Delegate등 일반적인 선언을 할 때 사용한다.

@end : class, category, protocol 등을 종료할 때 사용한다.


아래는 Obj-C에서 사용되는 member 접근 지정자 이다. C++에서도 유사하게 사용되고 있다. 

용도는 Obj-C/C++ 모두 같다.

@private : 상속이 되지 않으며 해당 클래스 안에서만 사용되는 member들의 집합.

@protected : 정의된 클래스와 상속된 클래스에서만 접근이 가능한 member들의 집합

@public : 모든 곳에서 사용할 수 있는 member들을 쓴다.


exception 핸들링을 위해 사용되는 지시어

예외 처리를 위해서 사용하는 지시어들도 C++에서 사용될 때와 유사하게 사용된다. @try,

@throw, @catch(), @finally 등이 있다.


선언을 위한 지시어

Obj-C 에서만 사용되는 지시어로 아래와 같은 3가지가 있다.

@property : 프로퍼티 정의에 사용.

@synthesize : property로 정의한 변수 등의 getter, setter 없이 사용하고자 할때 사용

@dynamic : 동적으로 사용되는 메소드와 변수에 사용


Obj-C의 특별한 지시어

@class : 사용자 클래스 선언을 위해서 사용.

@selector(method_name) : 정의된 메소드 이름을 리턴해 준다.

@protocol(protocol_name) : 프로토콜 클래스의 인스턴스를 리턴해 준다.

@encode(type_spec) : type_spec의 구조를 인코딩하는 문자열을 산출.

@synchronized() : 하나의 스레드에 의한 코드 블럭 정의시 사용