是否可以使用编译器指令来控制是否实现了特定的委托?
例如,在下面的代码中,如果我们定义了常量,我只想包含一个库:
#ifdef kShouldLoadFromCSV
#import "CHCSVParser.h"
#endif
@interface MyAppDelegate : NSObject <UIApplicationDelegate, UITabBarControllerDelegate, CHCSVParserDelegate>{
如果
kShouldLoadFromCSV
未定义,我不想实现CHCSVParserDelegate
。我试过将compile指令粘贴在接口声明中,但这没有用。有没有办法做到这一点?
最佳答案
您可以这样做:
#if kShouldLoadFromCSV
@interface MyAppDelegate : NSObject <UIApplicationDelegate, UITabBarControllerDelegate, CHCSVParserDelegate>{
#else
@interface MyAppDelegate : NSObject <UIApplicationDelegate, UITabBarControllerDelegate>{
#endif
或者,如果您希望(也许更难阅读)关于口味的问题:
@interface MyAppDelegate : NSObject <UIApplicationDelegate, UITabBarControllerDelegate
#if kShouldLoadFromCSV
, CHCSVParserDelegate
#endif
>{
您必须记住,预处理器不支持语法,只会影响编译器的输入。