我定义了一个预处理器宏,例如:

#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

这样,即使将头文件和实现文件编译到项目中,您甚至都不会看到该类。

10-07 23:00