IOS开发之----常用宏定义和讲解

系统宏汇集

__FILE__  

             当前文件所在目录                     

 __DATE__                    

            “替代文字”是一个含有编译日期的字符串字面值,日期格式为“mm dd yyyy”(例如:“Mar 192006”)。如果日期小于10日,就在日的前面放一个空格符。NSLog(@"_DATE_=%s",__DATE__);

__FUNCTION__ 

              当前函数名称

__LINE__            
              当前语句在源文件中的行数
__TIME__
             此字符串字面值包含编译时间,格式为“hh:mm:ss”(范例:“08:00:59”)。
__STDC__
             整数常量1,表示此编译器遵循ISOC标准。
__STDC_VERSION__ 
           如何实现复合C89整部1,则这个宏的值为19940SL;如果实现符合C99,则这个宏的值为199901L;否则数值是未定义
__STDC_EOBTED__
            (C99)实现为宿主实现时为1,实现为独立实现为0
__STDC_IEC_559__ 
            (C99)浮点数实现复合IBC60559标准时定义为1,否者数值是未定义
__STDC_IEC_559_COMPLEX__ 
            (C99)复数运算实现复合IBC60559标准时定义为1,否者数值是未定义
__STDC_ISO_10646__ 
            (C99)定义为长整型常量,yyyymmL表示wchar_t值复合ISO10646标准及其指定年月的修订补充,否则数值未定义


1、release时,屏蔽log

C代码    收藏代码
  1. #if defined (DEBUG) && DEBUG == 1  
  2.   
  3. #else  
  4. #define NSLog(...) {};  
  5. #endif  

 

2、在主线程或在后台执行block

C代码    收藏代码
  1. #define BACK(block) dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), block)  
  2. #define MAIN(block) dispatch_async(dispatch_get_main_queue(),block)  

 

3、设备相关

 

C代码    收藏代码
  1. #define isRetina ([UIScreen instancesRespondToSelector:@selector(currentMode)] CGSizeEqualToSize(CGSizeMake(640, 960), [[UIScreen mainScreen] currentMode].size) NO)  
  2.   
  3. #define iPhone5 ([UIScreen instancesRespondToSelector:@selector(currentMode)] CGSizeEqualToSize(CGSizeMake(640, 1136), [[UIScreen mainScreen] currentMode].size) NO)  
  4.   
  5. #define isPad (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)  
  6.   
  7. #define CurrentSystemVersion ([[UIDevice currentDevice] systemVersion])  
  8.   
  9. #define CurrentLanguage ([[NSLocale preferredLanguages] objectAtIndex:0])   
 

4、区分模拟器和真机

C代码    收藏代码
  1. #if TARGET_OS_IPHONE  
  2. //iPhone Device  
  3. #endif  
  4.   
  5. #if TARGET_IPHONE_SIMULATOR  
  6. //iPhone Simulator  
  7. #endif  

 

5、根据是否使用ARC做不同操作

C代码    收藏代码
  1. #if __has_feature(objc_arc)  
  2.     //compiling with ARC  
  3. #else  
  4.     // compiling without ARC  
  5. #endif  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值