#if 条件1
//code 1
#elif 条件2
//code 2
#else
//code n
#endif
条件1满足就编译code 1,以此类推。
#if (TARGET_IPHONE_SIMULATOR || TARGET_OS_IPHONE)
#import <UIKit/UIKit.h>
#define HXColor UIColor
#else
#import <Foundation/Foundation.h>
#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
我们可以这样规避发版时候的疏忽导致的接口错误。