Почему в Xcode 6 автоматически создается ProjectName-Prefix.pch?

Почему в Xcode 6 автоматически создается ProjectName-Prefix.pch?

Не нужен ли заголовок precompile?

Где мне написать код, который был в ProjectName-Prefix.pch до?

Ответ 1

Я подозреваю из-за модулей, которые устраняют необходимость в #import <Cocoa/Cocoa.h>.

Что касается того, где поставить код, который вы поместили бы в заголовок префикса, нет кода, который вы должны поместить в заголовок префикса. Поместите свой импорт в файлы, которые в них нуждаются. Поместите свои определения в свои собственные файлы. Поместите свои макросы... нигде. Прекратите писать макросы, если нет другого пути (например, когда вам нужно __FILE__). Если вам нужны макросы, поместите их в заголовок и включите его.

Заголовок префикса был необходим для вещей, которые огромны и используются почти всем во всей системе (например, Foundation.h). Если у вас есть что-то огромное и вездесущее, вы должны переосмыслить свою архитектуру. Заголовки префикса сильно усваивают код и вводят тонкие проблемы с сборкой, если любой из перечисленных файлов может измениться. Избегайте их, пока у вас не возникнет серьезная проблема времени сборки, которую вы можете продемонстрировать, значительно улучшена с помощью заголовка префикса.

В этом случае вы можете создать его и передать в clang, но это невероятно редко, что это хорошая идея.


РЕДАКТИРОВАТЬ. К вашему конкретному вопросу о HUD, который вы используете во всех своих контроллерах просмотров, да, вы должны абсолютно импортировать его во все контроллеры представлений, которые его фактически используют. Это делает зависимости ясными. При повторном использовании контроллера просмотра в новом проекте (который является общим, если вы хорошо строите контроллеры), вы сразу же узнаете, чего он требует. Это особенно важно для категорий, которые могут сделать код очень сложным для повторного использования, если они неявные.

Файл PCH не существует, чтобы избавиться от зависимостей листинга. Вы должны по-прежнему импортировать UIKit.h или Foundation.h по мере необходимости, как это делают шаблоны Xcode. Причиной PCH является улучшение времени сборки при работе с действительно массивными заголовками (например, в UIKit).

Ответ 2

Без вопроса, если это правильно или нет, вы можете добавить файл PCH вручную:

  • Добавить новый проект PCH в проект: Новый файл > Другое > PCH файл.

  • В настройке Target Build Settings установите значение Prefix Header в имя вашего PCH файла с именем проекта в качестве префикса (т.е. для проекта с именем TestProject и PCH файлом с именем MyPrefixHeaderFile), добавьте значение TestProject/MyPrefixHeaderFile.pch к plist).

    СОВЕТ. Вы можете использовать такие вещи, как $(SRCROOT) или $(PROJECT_DIR), чтобы перейти к пути, в который вы помещаете .pch в проект.

  • В настройке Target Build Settings установите для параметра Precompile Prefix Header значение YES.

Ответ 3

Вам нужно создать собственный файл PCH
Добавить New file -> Other-> PCH file

Затем добавьте путь к этому файлу PCH в вашу сборку setting->prefix header->path

($ (SRCROOT)/filename.pch)

enter image description here

Ответ 4

Я покажу вам рисунок!

  • Добавить новый файл Add a new File

  • Перейдите в Project/Build Setting/APPl LLVM 6.0-Language Add a new File

Ответ 5

Чтобы добавить файл .pch -

1) Добавить новый .pch файл в ваш проект- > Новый файл- > другой- > PCH файл

2) Перейдите к настройке сборки проекта.

3) Найдите "заголовок префикса". Вы можете найти это под Apple LLVM.

4) Вставьте это в поле $(SRCROOT)/yourPrefixHeaderFileName.pch

5) Очистите и создайте проект. Что это!!!

enter image description here

Ответ 6

Если вы решили добавить файл .pch вручную и хотите использовать Objective-C так же, как и до xCode 6, вам также придется импортировать фреймворки UIKit и Foundation в файл .pch. В противном случае вам придется импортировать эти фреймворки вручную в каждом файле заголовка. Вы можете добавить следующий код в любом случае, поскольку он проверяет используемый язык:

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

Ответ 7

Для добавления нового файла PCH выполните следующие шаги:

(1) Добавить новый fiew - Выбрать iOS - Другой и PCH файл

(2) добавить путь к этому файлу PCH в свой проект - BuildSetting - Язык Apple LLVM 6.0

Добавить Set Prefix Header Path YourApplicationName (корневой путь)/filename.pch

Ответ 8

Использование:

$(PROJECT_DIR)/Название проекта /PrefixHeader.pch