Подтвердить что ты не робот

Почему .pch файл недоступен в swift?

В swift файл Prefix.pch не предоставляется. В моем проекте я хочу объявить некоторые макросы глобально и использовать через приложение.

Может кто-нибудь дать мне предложение, как это сделать, где объявить?

Есть ли другой файл, замененный файлом Prefix.pch в swift?

4b9b3361

Ответ 1

Даже в Obj-C использование макросов для констант и выражений - это то, что вы не должны делать. Принимая примеры из ваших комментариев:

#define NAVIGATIONBAR_COLOR @"5B79B1"

Было бы лучше как метод категории на UIColor, например

+ (UIColor *) navigationBarColor {
    return [UIColor colorWith...];
}

Макрос isPad должен быть либо простой функцией

BOOL isIPad() {
    return ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad);
}

или снова метод категории, например. на UIDevice

[UIDevice isIPad]

определяется как

+ (BOOL)isIPad {
   return ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad);
}

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

В Swift ситуация одинаков - нет заголовков и макросов, поэтому нет предварительно скомпилированного заголовка. Вместо этого используйте расширения, глобальные константы или синглеты.