В Objective-C импорт одинаковых заголовков в каждом классе увеличивает время компиляции?
========================================================================================

 Я новичок в программировании на Objective-C / iOS.

 Я хочу создать один заголовочный файл, который включает все заголовки классов, которые я использую в своем проекте.  
 И импортировать заголовок в каждый файл заголовка класса.

 Как этот вопрос:  
 [Включая несколько классов в одном заголовочном файле](https://stackoverflow.com/questions/1517146/)

 Но увеличивает ли этот подход время компиляции?  
 Или есть другой недостаток?

 Скажите, пожалуйста, как импортировать заголовки.

 недавно сгенерированные проекты iOS идут с этой функциональностью, которая называется предварительно скомпилированный заголовок илиprefix header, и это файл с расширением`.pch`.

Вы можете добавить туда все заголовки, которые вам нужны, и XCode предварительно скомпилирует их перед тем, как что-либо построить, и использовать их для компиляции других модулей компиляции в вашем проекте (например,`.m` файлы).

 Использование предварительно скомпилированного заголовка может или не может увеличить время компиляции; в общем, это сокращает время компиляции, если у вас много общих заголовков и / или много исходных файлов.

 Однако, не обязательно хорошей практикой считать предварительно скомпилированный заголовок как большую площадку сброса, поскольку ваши модули компиляции могут формировать неявные зависимости от всех видов вещей, когда вам может потребоваться слабая связь между компонентами.



 ость сборки в некоторых случаях, но вы, вероятно, не заметите разницу.

 Лучше хранить заголовки классов в разных файлах для целей организации. Кроме того, если вы включаете только заголовки, которые вам нужны, в ваши исходные файлы, то ваше время сборки будет сокращено, хотя, опять же, это не заметно, если вы используете приличную сборочную машину.



 чтобы заголовки импортировались глобально, вы должны сделать это в`YourProject-Prefix.pch` файл. Это должно выглядеть примерно так ..

 Теперь у всех твоих классов есть`YourGlobalHeader.h` автоматически импортируется.



 что каждый раз, когда вы изменяете заголовок класса, все файлы, включая даже косвенные, нужно будет перекомпилировать, в то время как если вы только импортируете нужный класс, а также используете @class, когда вы можете затем только файлы, которые непосредственно используют класс, должны быть перекомпилированы. Таким образом, в первом случае компиляций будет намного больше, чем во втором. Именно так я бы рекомендовал начать.

 Однако когда ваш код становится более стабильным, а классы НЕ меняются, то размещение их всех в одном заголовке может сократить время компиляции, поскольку предварительно скомпилированный заголовок будет содержать одинаковую информацию для каждого файла. Что я хотел бы сделать, это когда код не меняется так сильно, помещать зрелые классы в Framework, а заголовок Framework будет включать все эти классы.



 роекта. Затем вы можете использовать его в своих классах.