Ответ 1
Мое понимание заключается в том, что это содержимое файла префиксами для каждого из файлов исходного кода перед компиляцией
Это в основном правильно, но вам нужно понять тонкие моменты: каждая компиляция из Xcode в конечном итоге сводится к вызову gcc
или clang
. Что XCode делает, это сначала скомпилировать файл X.pch
:
clang -x X.pch -o X.pch.gch
а затем, когда скомпилирован отдельный исходный файл (скажем a.m
), он выдает
clang -include X.pch a.m -o a.o
который загружает файл pch
, запуская использование предварительно скомпилированного заголовка. Итак, с точки зрения компилятора, это не значит, что содержимое файла pch
автоматически префикс. Скорее, Xcode префикс предварительно скомпилированного заголовка в файл, когда он вызывает компилятор.
Будущая версия XCode может просто перестать это делать. Таким образом, лучше хранить #import
в ваших файлах .m
или .h
.
Вы также можете думать об этом так: использование файла pch
- это именно то, что Xcode делает для нас за кулисами, чтобы ускорить процесс компиляции. Таким образом, мы не должны писать коды так, как это существенно зависит от него, например, не импортируя файл UIKit.h
из наших файлов .m
/.h
.
(Также мне кажется, что раскраска синтаксиса XCode4 путается, если вы не импортируете соответствующие файлы заголовков из файлов .h
и .m
.)