본문 바로가기

카테고리 없음

[Objective C] #import <Header.h> 와 #import "Header.h" 의 차이점

Objective C 에서 다른 라이브러리같은 헤더파일을 가져올 때 #import 키워드를 사용하여 가져온다.

해당 키워드는 C, C++의 #include 와 동일하다.

 

Objc 언어로 프로그래밍을 하다보면 Import 할 때 

#import <Header.h> 처럼 꺽쇠로 라이브러리 명을 가져오는 경우도 있고

#import "Header.h" 처럼 쌍따옴표로 라이브러리를 가져오는 경우가 있는데 둘의 차이점은 아래와 같다.

 

#import <Header.h>

시스템 파일에서 해당 파일을 가져오는 것으로, Objc 컴파일러는 로컬 파일이 아닌 시스템 파일에서 지시한 파일을 찾는다.

전역의 의미를 포함한 것으로, 컴파일러에 전달된 포함 경로의 어딘가에 있는 것을 의미한다.

 

#import "Header.h"

시스템 파일이 아닌 로컬 파일 ( 개발자가 만든 파일 )에 사용되며, 시스템에게 그 파일을 어디서 찾아야 하는지를 알려준다.

큰 따옴표를 쓰면 컴파일러는 먼저 현재 디렉터리에서 지시한 파일을 찾는다. (현재 파일에서 상대 경로를 지정해야 한다.) 그 후 다른 곳들에서 찾게 된다. 

필요하다면 컴파일러가 검색할 실제 위치를 지정해줄 수 있다.

 

정리하자면 컴파일러는 <> 는 시스템 디렉터리에서 검색하게 되고, "" 는 로컬 디렉터리 기준으로 검색하게 된다는 것이다.

 

 

 

참고: https://stackoverflow.com/questions/1044360/import-using-angle-brackets-and-quote-marks

 

#import using angle brackets < > and quote marks " "

I'm wondering what decides whether you're allowed to use <Header.h> or "Header.h" when you're importing files in Objective-C. So far my observation has been that you use the quote marks "" for

stackoverflow.com