В чем разница при размещении заголовка внутри файла pch?

В некоторых учебных пособиях говорится, что мы можем поместить некоторые файлы заголовков в файл pch. После этого я все еще вижу, что тот же заголовок включен в отдельный файл заголовка? почему мы помещаем заголовок в файл pch?

Для exmaple, UIKit.h

    One Solution collect form web for “В чем разница при размещении заголовка внутри файла pch?”

    Я считаю, что здесь есть два вопроса:

    1. Зачем дублировать импорт файлов заголовков в pch и отдельных исходных файлах? Вы правы, это избыточно, и вы можете легко избавиться от одного из дублированных импортов и по-прежнему запускать свою программу и по-прежнему сможете использовать помощь Xcode по завершению. Например, вы можете удалить импорт UIKit из .pch или View Viewer. Однако UIKit и UIFoundation являются особым случаем, поскольку они в значительной степени лежат в основе Cocoa Touch, и это именно то, как загружаются проекты шаблонов. И поэтому Apple решила их дублировать. Вероятно, это связано с тем, что разработчик может решить избавиться от .pch, и поэтому Apple хочет обеспечить, чтобы каждый новый UIViewController работал прямо из ворот, так как он автоматически импортировал UIKit. Но для всех других добавленных вами фреймворков / классов вам нужно только поместить их в одно место (файл .pch или отдельный исходный файл, который импортирует его). Это приводит к второму вопросу:

    2. Когда использовать .pch (по сравнению с обычным импортом в исходном файле)? Предварительно скомпилированные заголовки, особенно при создании (компиляции) вашего приложения, могут быть очень полезными, поскольку заголовки в файле .pch компилируются только в первый раз, а затем только в том случае, если заголовки меняются в будущем. Если ваше приложение импортирует множество фреймворков / заголовков, которые не меняются; это может ускорить создание (компиляцию), поскольку компилятор будет использовать .pch и компилировать каждый импортированный фреймворк / класс каждый раз, когда вы компилируете.

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

    PS2: Как указано в файле .pch, любые заголовки, перечисленные в .pch, будут импортированы во все исходные файлы. Вы можете подумать, что это избыточно, но использование #import устраняет избыточный импорт.

    Надеюсь это поможет

    Interesting Posts

    Различное значение хэш-функции, созданное на окнах, Linux и Mac для одного изображения

    JSTilemap – Загрузка только видимых фрагментов

    Как центрировать текст UITextField в Swift

    Неверный дисплей данных ячейки при прокрутке UITableView

    iOS5 Назначьте .xib в пользовательский класс UIView

    Результаты запроса Swift не отображаются в табличном представлении

    Как определить, какой образ по умолчанию использовался во время выполнения?

    Возможно несколько учетных записей разработчика iOS? Та же компания = тот же DUNS

    Не найдено совпадающих профилей профилирования. Ios xcode 6.3.2

    libPayPalEC.a без uniqueIdentifier?

    xcode8.1: недопустимый режим «kCFRunLoopCommonModes», предоставленный CFRunLoopRunSpecific – перерыв на _CFRunLoopError_RunCalledWithInvalidMode для отладки

    Преобразование символа Unicode или его объектов XML / HTML в его номер Unicode в Swift

    Каковы библиотеки, связывающие параметры в Xcode?

    Маскированный CALayer в iOS

    Исключение iOS Bugsnag – EXC_BAD_ACCESS _dispatch_dispose Попытка разыменовать указатель мусора

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.