(1)__OPTIMIZE__ :用于release和debug的判断,当选择了__OPTIMIZE__ 时,可以让代码在release时执行,在debug时不执行。示例如下:
#ifndef __OPTIMIZE__
//这里执行的是debug模式下
else
//这里执行的是release模式下
#endif
(2)__i386__ 与 __x86_64__ :用于模拟器环境和真机环境的判断。满足该条件的代码只在模拟器下执行。示例代码如下:
#if defined (__i386__) || defined (__x86_64__)
//模拟器下执行
#else
//真机下执行
#endif
(3)__IPHONE_OS_VERSION_MAX_ALLOWED :当前编译的SDK版本,可以与__IPHONE_9_0等宏定义进行比较,进行不同版本下代码的执行。示例如下:
if (__IPHONE_OS_VERSION_MAX_ALLOWED == __IPHONE_9_0) {
//如果当前SDK版本为9.0是执行这里的代码
}else{
//否则执行这里
}
(4)预编译宏 #ifdef #else #endif
#ifdef ****
//代码1
else
//代码2
#endif
(5)计算代码块执行的时间:
#define TICK NSDate *startTime = [NSDate date] //运行前时间,放在代码块之前
#define TOCK NSLog(@"Time: %f", -[startTime timeIntervalSinceNow]) //函数执行完用时多长,放在代码块之后