답변:
모듈 때문에의 필요성을 제거하는 것으로 의심 #import <Cocoa/Cocoa.h>
됩니다.
접두사 헤더에 넣을 코드를 어디에 두어야하는지 접두사 헤더에 넣을 코드가 없습니다. 가져 오기를 필요한 파일에 넣습니다. 정의를 자체 파일에 넣으십시오. 당신의 매크로를 어디에도 두지 마십시오. 다른 방법이 없으면 (예 : 필요할 때 __FILE__
) 매크로 작성을 중지하십시오 . 매크로가 필요한 경우 헤더에 넣고 포함하십시오.
접두사 헤더는 전체 시스템의 거의 모든 것 (예 :)에 거대하고 사용되는 것들에 필요했습니다 Foundation.h
. 거대하고 어디에나있는 것이 있다면 아키텍처를 다시 생각해야합니다. 접두사 헤더는 코드 재사용을 어렵게 만들고 나열된 파일 중 하나라도 변경 될 수 있으면 미묘한 빌드 문제를 일으 킵니다. 당신이 보여줄 수있는 심각한 빌드 타임 문제가 접두사 헤더로 크게 향상 될 때까지 그것들을 피하십시오.
이 경우 하나를 만들어 clang에 전달할 수 있지만 좋은 아이디어는 거의 없습니다.
편집 : 모든 뷰 컨트롤러에서 사용하는 HUD에 대한 특정 질문에, 실제로 그것을 사용하는 모든 뷰 컨트롤러로 가져와야합니다. 이것은 의존성을 명확하게합니다. 새 프로젝트에서 뷰 컨트롤러를 재사용하면 (컨트롤러를 잘 구축 할 경우 일반적 임) 즉시 필요한 것을 알 수 있습니다. 이것은 카테고리에 특히 중요합니다. 암시 적 코드를 재사용하기가 매우 어려울 수 있습니다.
PCH 파일은 목록 종속성을 제거하지 않습니다. 당신은 여전히 가져와야 UIKit.h
또는 Foundation.h
필요에 따라 엑스 코드 템플릿처럼. PCH의 이유는 (UIKit과 같이) 정말로 방대한 헤더를 다룰 때 빌드 시간을 향상시키기 위해서입니다.
TWAPIManager.m
예를 들어 다른 프로젝트 에을 복사하려고하면 TWALog()
찾을 수없는 위치에 대한 힌트없이 정의되지 않은 오류가 발생 합니다. 코드를 공유하려는 여러 대형 프로젝트에서 정확히 그 문제가 발생했습니다. TWAPILog.h
그것을 생성 하고 임포트하면 사소한 개발 비용 으로이 문제를 해결할 수 있습니다.
적절한 지 여부에 대한 질문없이 PCH 파일을 수동으로 추가 할 수 있습니다.
새 PCH 파일을 프로젝트에 추가하십시오 (새 파일> 기타> PCH 파일) .
대상의 빌드 설정 옵션에서 접두사 헤더 의 값을 프로젝트 이름을 접두어로 사용하여 PCH 파일 이름으로 설정하십시오 (예 : 프로젝트 이름 TestProject
및 PCH 파일 이름 은 plist에 MyPrefixHeaderFile
값 추가 TestProject/MyPrefixHeaderFile.pch
).
팁 : 프로젝트에 넣는 경로 와 같은 경로를 사용 $(SRCROOT)
하거나 $(PROJECT_DIR)
경로에 도달 할 수 있습니다 .pch
.
대상의에서 빌드 설정 옵션의 값으로 설정 프리 D 접두사 헤더를 합니다 YES
.
당신은 자신의 PCH 파일을 작성해야합니다
추가New file -> Other-> PCH file
그런 다음이 PCH 파일의 경로를 빌드에 추가하십시오. setting->prefix header->path
($ (SRCROOT) /filename.pch)
$(PRODUCT_DIR)/$(PRODUCT_NAME)/PrefixHeader.pch
.pch 파일을 수동으로 추가하기로 결정하고 xCode 6 이전과 같이 Objective-C를 사용하려는 경우 .pch 파일에서 UIKit 및 Foundation 프레임 워크도 가져와야합니다. 그렇지 않으면 각 헤더 파일에서 이러한 프레임 워크를 수동으로 가져와야합니다. 사용 된 언어를 테스트 할 때 다음 코드를 추가 할 수 있습니다.
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#endif
새 PCH 파일을 추가하려면 다음 단계를 수행하십시오.
(1) 새로운 파일 추가-iOS 선택-기타 및 PCH 파일
(2)이 PCH 파일의 경로를 프로젝트에 추가-BuildSetting-Apple LLVM 6.0 언어
접두사 헤더 경로 설정 YourApplicationName (root-path) /filename.pch 추가