program tip

# 꺾쇠 괄호를 사용하여 가져 오기 <> 및 따옴표 ""

radiobox 2020. 7. 29. 08:05
반응형

# 꺾쇠 괄호를 사용하여 가져 오기 <> 및 따옴표 ""


Objective-C에서 파일을 가져올 수 있는지 <Header.h>또는 "Header.h"가져올 때 결정하는 것이 무엇인지 궁금합니다 . 지금까지는 ""프로젝트에서 구현 소스가있는 파일 의 따옴표 <>라이브러리 또는 프레임 워크를 참조 할 때 꺾쇠 괄호 를 사용하는 것으로 관찰했습니다 .

그러나 정확히 어떻게 작동합니까? 클래스를 사용하여 대괄호를 사용하려면 어떻게해야합니까? 현재 Xcode는 내 헤더에 대해 그렇게 할 수 없습니다.

또한 일부 프레임 워크 헤더를 보면 헤더가 서로 참조하는 것을 알 수 있습니다 <frameworkname/file.h>. 어떻게 그런 일을? Java의 패키지와 매우 비슷하지만 Objective-C의 패키지와 같은 것은 없습니다.


Objective-C는 C / C ++과 공통점이 있습니다. 인용 된 형식은 파일의 "로컬"포함에 대한 것이며 (예 : 현재 파일의 상대 경로를 지정해야 함 #include "headers/my_header.h") 꺾쇠 괄호 형식은 "글로벌"포함에 대한 것입니다. 컴파일러 (예를 들면 #include <math.h>).

따라서 자신의 헤더를 사용 < >하지 않으 " "려면 헤더 디렉토리의 상대 경로 또는 절대 경로를 컴파일러에 전달해야합니다. Xcode 에서이를 수행하는 방법에 대한 정보는 "Xcode의 글로벌 포함 경로를 추가하는 방법"을 참조하십시오 .

자세한 내용은 이 MSDN 페이지 를 참조하십시오.


C에서 관례는 <> 괄호 안에있는 헤더 파일이 '시스템'디렉토리에서 검색되고 사용자 또는 로컬 디렉토리에서 ""로 검색된다는 것입니다.

시스템과 로컬의 정의는 약간 모호합니다. 포함 경로 또는 CPPFLAGS의 시스템 디렉토리에서 -I로 지정된 로컬 디렉토리 또는 디렉토리에서 "header.h"파일을 검색합니다.

Objective-C와 비슷하게 작동한다고 가정합니다.


"<>"를 사용하여 자신의 클래스를 가져 오려면 헤더 파일 (* .h)을 컴파일러의 lib 폴더에 배치하거나 lib 폴더에 ponting하는 SYSTEM VARIABLES를 설정해야합니다.


또는 설정 Always Search User PathYES당신이 꺾쇠 괄호를 사용할 수 있습니다.


꺾쇠 괄호를 사용하면 <Foundation/Foundation.h>시스템 파일을 가져올 수 있습니다.

큰 따옴표 "Person.h"사용 하여 로컬 파일 (생성 한 파일)을 가져오고 컴파일러에게 찾을 위치를 알려줍니다.


""- Quotation marks이 파일과 같은 폴더에서 이름이 지정된 파일을 찾습니다 ( .m#import 행이 있는 파일).

<>- Angle brackets빌드 설정에 제공된 다양한 헤더 검색 경로 중에서 이름이 지정된 파일을 찾으십시오. (이 검색 경로는 자동으로 설정되며 일반적으로 수정할 필요가 없습니다.)

일반적으로, 꺾쇠 괄호를 사용하여 Cocoa API가 소유 한 헤더 파일을 나타내고 인용 부호는 작성한 헤더 파일을 나타냅니다. #import 지시문이 무엇을 가져 오는지 궁금하다면 Xcode에서 해당 명령을 선택하고 File → Open Quickly를 선택하여 지정된 헤더 파일의 내용을 표시하십시오.

자세한 내용은 여기를 참조 하십시오


동일한 문제가 발생했을 때 Xcode는 두 가지 유형의 검색 경로가 있습니다.

User Header Search Paths
Header Search Paths

고유 한 포함 폴더를 헤더 검색 경로에 추가하면 문제없이 꺾쇠 괄호를 사용할 수 있습니다.


헤더 파일이란 무엇입니까? 헤더 파일에는 전 처리기 #include 문을 사용하여 모든 C 프로그램에 통합 할 수있는 함수 및 변수 정의가 포함되어 있습니다. 표준 헤더 파일은 각 컴파일러와 함께 제공되며 다양한 영역, 문자열 처리, 수학, 데이터 변환, 인쇄 및 변수 읽기를 다룹니다. Exinclude는 scanf ()와 같은 입력에 대한 정보를 포함하고 컴파일러에서 printf () 함수와 같은 출력을 포함합니다.

포함

1) #INCLUDE :-주요 기능을 처리하기 전에 처리하는 전 처리기입니다. 전 처리기의 주요 작업은 프로그램 환경, 즉 헤더 파일이있는 프로그램을 초기화하는 것입니다. 2) .h :-(헤더 파일) 헤더 파일은 C 함수 선언과 매크로 정의를 포함하고 여러 소스 파일간에 공유되는 확장자가 .h 인 파일입니다. Q) 헤더 파일에는 프로그래머가 작성하는 파일과 컴파일러와 함께 제공되는 파일의 두 가지 유형이 있습니다. A) 각괄호 안에 각괄호 형식은 "글로벌"을 포함한다-컴파일러에 전달 된 포함 경로 어딘가에있는 것들 (예 : #include) 컴파일러에서 정의 된 라이브러리 함수를 사용하는 데 사용된다. C에서 관례는 <> 괄호 안의 헤더 파일이 '시스템'에서 검색된다는 것입니다 디렉토리 B) 인용 부호 :- "header.h"인용 양식은 파일의 "로컬"포함을위한 것입니다 (현재 파일에서 상대 경로를 지정해야합니다 (예 : #include "headers / my_header.h"). C에서 규칙 ""의 헤더 파일은 사용자 또는 로컬 디렉토리에서 검색됩니다. 하나의 파일이 다른 파일에 포함됩니다. (FILE INCLUSION). 사례 1 : 우리가 매우 큰 프로그램을 가지고 있다면, 코드는 여러 개의 서로 다른 파일로 나뉘어져 있으며, 각각은 관련 기능 세트를 포함합니다. 사례 2 : 우리가 작성하는 모든 프로그램에서 가장 필요한 함수와 마이크로 정의가 있습니다. 전의 C) 규칙은 ""의 헤더 파일이 사용자 또는 로컬 디렉토리에서 검색된다는 것입니다. 하나의 파일이 다른 파일에 포함됩니다. (FILE INCLUSION). 사례 1 : 우리가 매우 큰 프로그램을 가지고 있다면, 코드는 여러 개의 서로 다른 파일로 나뉘어져 있으며, 각각은 관련 기능 세트를 포함합니다. 사례 2 : 우리가 작성하는 모든 프로그램에서 가장 필요한 함수와 마이크로 정의가 있습니다. 전의 C) 규칙은 ""의 헤더 파일이 사용자 또는 로컬 디렉토리에서 검색된다는 것입니다. 하나의 파일이 다른 파일에 포함됩니다. (FILE INCLUSION). 사례 1 : 우리가 매우 큰 프로그램을 가지고 있다면, 코드는 여러 개의 서로 다른 파일로 나뉘어져 있으며, 각각은 관련 기능 세트를 포함합니다. 사례 2 : 우리가 작성하는 모든 프로그램에서 가장 필요한 함수와 마이크로 정의가 있습니다. 전의

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

반응형