[Ответ перенесен и расширен из комментариев]
С добавлением дополнительной информации об использовании предварительно скомпилированного заголовочного файла (.pch
) в комментарии, ваша проблема приходитвплоть до Swift, не использующего .pch
файлы - они являются функцией компилятора Objective-C.
В Objective.c Profile.h
компилируется как заголовок, от которого зависит, constant.h
, импортируется .pch
.
В Swift Profile.h
выдает ошибку отсутствующего типа, так как не импортирует constant.h
, который определяет тип.
Просто импортирует constant.h
в Profile.h
.
Примечание: это не только работает для Swift, но и продолжает работать корректно для Objective-C - функция .pch
является опцией компилятора для ускорения обработки заголовка, и компилятор Objective-C продолжит ее использовать, когдавидит constant.h
импорт в Profile.h
, он просто пропустит его, уже импортированный .pch
.