头文件中通用框架的预处理器宏

时间:2019-03-21 21:10:30

标签: ios objective-c macos

我在一个旧项目中,有一个代码库可以为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。

0 个答案:

没有答案