有没有办法让 OSX 类别和 iOS 类别都有一个头文件和实现文件?我不想使方法完全相同并添加另外两个文件。
我试过这个,这不起作用:
#if TARGET_OS_IPHONE
#define kClass [UIColor class]
#import <UIKit/UIKit.h>
#elif TARGET_OS_MAC
#define kClass [NSColor class]
#import <AppKit/AppKit.h>
#endif
@interface kClass (MyCategory)
有没有办法做到这一点?
最佳答案
绝对地!请记住, #define
是编译前的简单文本替换:您希望 kClass
是 UIColor
,而不是 [UIColor class]
,就像您永远不会编写 @interface [UIColor class] (MyCategory)
一样。
综上所述:
#if TARGET_OS_IPHONE
#define kClass UIColor
#import <UIKit/UIKit.h>
#elif TARGET_OS_MAC
#define kClass NSColor
#import <AppKit/AppKit.h>
#endif
@interface kClass (MyCategory)