[ios] Xcode 6에서 ProjectName-Prefix.pch가 자동으로 생성되지 않는 이유는 무엇입니까?

ProjectName-Prefix.pch에서 자동으로 생성 되지 않는 이유는 무엇 Xcode 6입니까?

프리 컴파일 헤더가 더 이상 필요하지 않습니까?

ProjectName-Prefix.pch이전에 있던 코드를 어디에 작성해야 합니까?



답변

모듈 때문에의 필요성을 제거하는 것으로 의심 #import <Cocoa/Cocoa.h>됩니다.

접두사 헤더에 넣을 코드를 어디에 두어야하는지 접두사 헤더에 넣을 코드가 없습니다. 가져 오기를 필요한 파일에 넣습니다. 정의를 자체 파일에 넣으십시오. 당신의 매크로를 어디에도 두지 마십시오. 다른 방법이 없으면 (예 : 필요할 때 __FILE__) 매크로 작성을 중지하십시오 . 매크로가 필요한 경우 헤더에 넣고 포함하십시오.

접두사 헤더는 전체 시스템의 거의 모든 것 (예 :)에 거대하고 사용되는 것들에 필요했습니다 Foundation.h. 거대하고 어디에나있는 것이 있다면 아키텍처를 다시 생각해야합니다. 접두사 헤더는 코드 재사용을 어렵게 만들고 나열된 파일 중 하나라도 변경 될 수 있으면 미묘한 빌드 문제를 일으 킵니다. 당신이 보여줄 수있는 심각한 빌드 타임 문제가 접두사 헤더로 크게 향상 될 때까지 그것들을 피하십시오.

이 경우 하나를 만들어 clang에 전달할 수 있지만 좋은 아이디어는 거의 없습니다.


편집 : 모든 뷰 컨트롤러에서 사용하는 HUD에 대한 특정 질문에, 실제로 그것을 사용하는 모든 뷰 컨트롤러로 가져와야합니다. 이것은 의존성을 명확하게합니다. 새 프로젝트에서 뷰 컨트롤러를 재사용하면 (컨트롤러를 잘 구축 할 경우 일반적 임) 즉시 필요한 것을 알 수 있습니다. 이것은 카테고리에 특히 중요합니다. 암시 적 코드를 재사용하기가 매우 어려울 수 있습니다.

PCH 파일은 목록 종속성을 제거하지 않습니다. 당신은 여전히 가져와야 UIKit.h또는 Foundation.h필요에 따라 엑스 코드 템플릿처럼. PCH의 이유는 (UIKit과 같이) 정말로 방대한 헤더를 다룰 때 빌드 시간을 향상시키기 위해서입니다.


답변

적절한 지 여부에 대한 질문없이 PCH 파일을 수동으로 추가 할 수 있습니다.

  1. 새 PCH 파일을 프로젝트에 추가하십시오 (새 파일> 기타> PCH 파일) .

  2. 대상의 빌드 설정 옵션에서 접두사 헤더 의 값을 프로젝트 이름을 접두어로 사용하여 PCH 파일 이름으로 설정하십시오 (예 : 프로젝트 이름 TestProject및 PCH 파일 이름 은 plist에 MyPrefixHeaderFile값 추가 TestProject/MyPrefixHeaderFile.pch).

    팁 : 프로젝트에 넣는 경로 와 같은 경로를 사용 $(SRCROOT)하거나 $(PROJECT_DIR)경로에 도달 할 수 있습니다 .pch.

  3. 대상의에서 빌드 설정 옵션의 값으로 설정 프리 D 접두사 헤더를 합니다 YES.


답변

당신은 자신의 PCH 파일을 작성해야합니다
추가New file -> Other-> PCH file

그런 다음이 PCH 파일의 경로를 빌드에 추가하십시오. setting->prefix header->path

($ (SRCROOT) /filename.pch)

여기에 이미지 설명을 입력하십시오


답변

사진과 함께 보여 드리겠습니다!

  1. 새 파일 추가
    새 파일 추가

  2. 이동 프로젝트 / 빌드 설정 / APPL LLVM 6.0 – 언어
    새 파일 추가


답변

.pch 파일을 추가하려면

1) 프로젝트-> 새 파일-> 기타-> PCH 파일에 새 .pch 파일 추가

2) 프로젝트의 빌드 설정으로 이동하십시오.

3) “접두사 헤더”를 검색하십시오. Apple LLVM에서 찾을 수 있습니다.

4) 필드에 붙여 넣기 $(SRCROOT)/yourPrefixHeaderFileName.pch

5) 프로젝트를 정리하고 빌드하십시오. 그게 다야 !!!

여기에 이미지 설명을 입력하십시오


답변

.pch 파일을 수동으로 추가하기로 결정하고 xCode 6 이전과 같이 Objective-C를 사용하려는 경우 .pch 파일에서 UIKit 및 Foundation 프레임 워크도 가져와야합니다. 그렇지 않으면 각 헤더 파일에서 이러한 프레임 워크를 수동으로 가져와야합니다. 사용 된 언어를 테스트 할 때 다음 코드를 추가 할 수 있습니다.

#ifdef __OBJC__
    #import <UIKit/UIKit.h>
    #import <Foundation/Foundation.h>
#endif


답변

사용하다 :

$ (PROJECT_DIR) / 프로젝트 이름 /PrefixHeader.pch