【发布时间】:2016-06-15 17:47:12
【问题描述】:
我有“Constants.h”头文件,其中包含如下宏:
#define IS_IOS_SIMULATOR TARGET_IPHONE_SIMULATOR
#define IS_IOS (TARGET_OS_IOS || IS_IOS_SIMULATOR)
#define IS_MAC (TARGET_OS_MAC)
#if IS_IOS
#define xColor UIColor
#elif IS_MAC
#define xColor NSColor
#endif
它允许我对 iOS 和 macOS 应用程序使用相同的代码。而且我的整个代码都在 Objective-C++ 中,所以我到处都放了类型转换。当涉及到这样的属性声明时,问题通常出现在头文件中:
@property (strong, nonatomic) xColor *colorProp;
XCode 不断抛出异常,例如:
未知类型名称“xColor”,您的意思是...?
即使导入了“Constants.h”文件并连接了所需的库。 有没有办法禁用这些异常并最终编译我的代码?
【问题讨论】:
-
看起来您在某处缺少
*,但我认为这不是您的根本问题 -
哦,解决了。只是在匆忙输入一个问题。它只是一个例子。
-
感谢您的回复!
-
一种方法是对包含该属性的源文件使用 Product->Perform action->Preprocess。它可以让您查看常量标头的导入位置以及对声明的影响(如果有)。
-
您确定一个或另一个定义在属性所在的标题中实际上是活动的吗?您可以使用#error 或#warning pragma 来检查
标签: objective-c xcode properties macros objective-c++