我定义了一个预处理器宏,例如:
#define ENABLE_SPECIAL_FEATURES 1
因此,现在我可以在目标中包含或不包含代码片段。但是我希望有可能在完整的 class 上也做同样的事情。因此,如果宏设置为“1”,则应该包含或不包含该类。
那可能吗?
更新:
框架可以使用相同的机制吗?
最佳答案
只需将整个类声明(.h
文件)和定义(.m
)包装在该宏值内
YourClass.h:
#if ENABLE_SPECIAL_FEATURES
#import <Whatever.h>
@interface YourClass : NSObject
....
@end
#endif // ENABLE_SPECIAL_FEATURES
YourClass.m:
#if ENABLE_SPECIAL_FEATURES
#import "YourClass.h"
@implementation YourClass
....
@end
#endif // ENABLE_SPECIAL_FEATURES
这样,即使将头文件和实现文件编译到项目中,您甚至都不会看到该类。