precompiled headers을 사용하여 "컴파일 속도 향상"을 시도하고 있습니다. Xcode에는 YourProject_Prefix.pch
이라는 파일이 있습니다. 거기에 원하는 개수의 헤더 파일을 포함 할 수 있습니다.PCH 파일 선택
내 질문은 어떻게 헤더 파일을 PCH에 넣어야합니까? 모든 헤더 파일을 거기에 버려야합니까, 아니면 실제로 최적이 아닐까요?
precompiled headers을 사용하여 "컴파일 속도 향상"을 시도하고 있습니다. Xcode에는 YourProject_Prefix.pch
이라는 파일이 있습니다. 거기에 원하는 개수의 헤더 파일을 포함 할 수 있습니다.PCH 파일 선택
내 질문은 어떻게 헤더 파일을 PCH에 넣어야합니까? 모든 헤더 파일을 거기에 버려야합니까, 아니면 실제로 최적이 아닐까요?
다음과 같이 머리글 파일을 가져 오면됩니다.
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#import "YourHeaderFile.h"
#endif
특히 응용 프로그램을 빌드하는 동안 미리 컴파일 된 헤더가 매우 유용 할 수 있습니다. .pch 파일의 머리글은 처음 컴파일 될 때만 이후 헤더가 미래에 변경되는 경우에만 컴파일됩니다. 앱에서 변경되지 않는 많은 프레임 워크/헤더를 가져 오는 경우. 이는 컴파일 할 때마다 컴파일러가 .pch를 사용하여 모든 가져온 프레임 워크/클래스를 컴파일하기 때문에 컴파일 (빌드)을 가속화 할 수 있습니다.
pch 파일은 기본적으로 모든 소스 파일에 포함됩니다.
즉 실제로는 헤더 파일을 어느 정도 전역 적이거나 결코 변경하지 말아야한다는 의미입니다. 모든 헤더를 넣으면 컴파일 속도가 느려질 것입니다. 왜냐하면 변경 될 때마다 프로젝트의 다른 모든 파일이 다시 컴파일해야하기 때문입니다. 에누리 ++ C에 대한 링크 된 의견을 가지고, 또한
#ifdef __OBJC__
#import <Cocoa/Cocoa.h>
#import "Errors.h"
#import "Localization.h"
#import "Logging.h"
#endif
:
여기 내 프로젝트 중 하나의 샘플이다 (나는이 또는 연구를 테스트하지 않았다). C++은 템플릿 등을 사용하여 헤더 파일에 들어가서 목표가 C보다 훨씬 오래 걸릴 수 있습니다. objective-c에서는 헤더에 구현되지 않고 유형 및 인터페이스 만 가질 가능성이 높습니다.
Xcode 5를 사용하는 경우 - 시스템 프레임 워크에서 지원되는 모듈을 살펴보십시오. 그런 다음'@import UIKit;'과 같은 것을 할 수 있으며 실제 텍스트 가져 오기 대신 미리 컴파일 된 데이터베이스를 사용합니다. 프리 컴파일과 마찬가지로 빠른 개별 파일에서이 작업을 수행 할 수 있으며 가져 오기를 전역 적으로 추가하지 않습니다. pch 파일에 대해서는 변경 될 가능성이없는 헤더를 추가하십시오. 그들이 변경하면 pch는 다시 사전 컴파일되고 당신은 그것의 혜택을 잃게됩니다. – Abizern