我可以#ifdef #imports在objective-c吗?
例如:
#ifdef USE_A
#import "ClassA.h"
#endif
#ifdef USE_B
#import "ClassB.h"
#endif
答案 0 :(得分:5)
是的,这个:
#ifdef USE_A
#import "ClassA.h"
#endif
有效。
答案 1 :(得分:1)
我相信它的#ifdef __OBJC__
指令可以确保导入以下Objective-C库。 if
的目的是除非必要,否则不导入它们。此外,这样代码仍然可以与可能想要使用该C文件中的功能的常规C代码兼容(至少这对我来说是这样的)。通过仅在定义OBJC时包含这些库,它确保在编译目标c而不是标准C时仅导入库。
#ifdef __OBJC__
#import <foundation/foundation.h>
#import <uikit/uikit.h>
#import <coredata/coredata.h>
#endif
答案 2 :(得分:0)
是的,您可以在objective-c中使用#ifdef
#imports
。
#ifdef MACRO
controlled text
#endif /* MACRO */
此块称为条件组。当且仅当定义了MACRO时,受控文本才会包含在预处理器的输出中。我们说如果MACRO被定义则条件成功,否则失败。有关更多信息,请查看GCC online docs。