광어네 맛집

[Objective - C] #define 이란? 본문

Objective-C [레거시 뿌수기!]/Objective-C

[Objective - C] #define 이란?

Lautner Jacob 2022. 4. 11. 12:07
728x90
반응형

오늘 포스팅은 define이라는 것을 알아 볼 예정!

define이 Swift에서는 typealias 인줄 알았지만?

좀 다른 개념이었음

 

그럼 define이 뭐죠??


 

먼저 Objective C 에서도 마찬가지로 typedef이라는 

키워드를 제공해주는데 사용은 다음과 같이 사용합니다!

typedef [type] [name];

 

예를 들어서 아래처럼 사용할 수 있음!

// 선언
typedef NSString 글자;

// 사용
글자 *name = @"가나다라";

 

이외의 것들은 다른 포스팅에서 알아보고 

#define은 매크로 상수라고 선언한 상수를 고대로 전달해주는 거라고 합니다

 

// 먼저 자동완성은 다음과 같이 나옵니다
#define [macro]

 

그럼 사용은??

이렇게 쓸 수 있음!

#define RGB(r, g, b) [UIColor red:r/255.0f green:g/255.0f blue:b/255.0f alpha:1.0f]

 

그럼 typedef이랑 별반 차이 없네? 할 수도 있지만

typedef는 type을 가지고 간편한 이름을 쓰지만

define의 경우 광어 = 생선 아닌 사람! 이렇게 만들 수 있는 거임!

 

그러니께 A를 에이라 부르든 1/2를 분수라 부르든 범위가 넓게 사용됨!

 


그럼 또 define만 계속 쓰면 되는거 아니야?

하겠지만 그건 또 아님!

define을 사용하다보면 컴파일 에러가 뜨지 않지만

런타임에서는 에러가 뜬다는...

 

Objective C자체가 Swift랑 성격이 조금 달라서

define을 쓸 경우 안전하지 않다는 결론입니다!

 

그러니 define 보다는 다른 걸 찾아서 써보면 좋을 듯 해요!

 

오늘도 화이팅!

728x90
반응형