Я нахожусь в унаследованном проекте, и есть одна база кода для создания различных фреймворков для iOS, macOS и т. Д. В одном из общедоступных заголовочных файлов, которые копируются в продукт фреймворка, есть макрос препроцессора, подобный этому
// MyObject.h
#ifdef TARGET_IOS
@import UIKit;
#endif
В том же заголовочном файле, если я попытаюсь сделать
#ifdef TARGET_IOS
@property (nonatomic, strong) UIView *containerView;
#endif
Каркас строится нормально. Однако когда я пытаюсь протестировать фреймворк в отдельном проекте приложения, компилятор не знает, какой тип containerView
относится к типу MyObject
.
Но, конечно, если я просто сделаю
@property (nonatomic, strong) UIView *containerView;
без макроса препроцессора, в отдельном приложении он знает, что типа containerView
. Это почему? Я думал, что вы говорите компилятору о том, что собирать с макросами препроцессора. И затем, поскольку эта структура создается с определенным свойством containerView
, она будет работать. Но, может быть, я что-то неправильно понимаю?
Отредактировано
TARGET_IOS = 1 в макросах препроцессора параметров сборки для конфигураций отладки и выпуска.