Макрос препроцессора для универсального фреймворка в заголовочном файле - PullRequest
0 голосов
/ 22 марта 2019

Я нахожусь в унаследованном проекте, и есть одна база кода для создания различных фреймворков для 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 в макросах препроцессора параметров сборки для конфигураций отладки и выпуска.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...