#if 条件1 //code 1#elif 条件2//code 2#else//code n#endif
条件1满足就编译code 1,以此类推。
#if (TARGET_IPHONE_SIMULATOR || TARGET_OS_IPHONE) #import#define HXColor UIColor#else #import #define HXColor NSColor#endif@interface HXColor (HexColorAddition)+ (HXColor *)colorWithHexString:(NSString *)hexString;+ (HXColor *)colorWithHexString:(NSString *)hexString alpha:(CGFloat)alpha;+ (HXColor *)colorWith8BitRed:(NSInteger)red green:(NSInteger)green blue:(NSInteger)blue;+ (HXColor *)colorWith8BitRed:(NSInteger)red green:(NSInteger)green blue:(NSInteger)blue alpha:(CGFloat)alpha;@end
以上是拿第三方写的 HXColor 颜色类来说,在ios系统下,颜色类是UIColor,而其他系统下是NSColor,这样的编译条件此类可以通用整个apple平台。
#ifdef DEBUG#define kPortURL @"http://101.200.xxx:8089" //测试环境#else#define kPortURL @"http://192.168.xxx:8080" //生产环境#endif
我们可以这样规避发版时候的疏忽导致的接口错误。