IOS常用宏定义和讲解

系统宏汇集

__FILE__  

当前文件所在目录                            

__DATE__  

“替代文字"是一个含有编译日期的字符串字面值,日期格式为“mm dd yyyy"(例如:“Mar 19 2006")。如果日期小于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)浮点数实现复合IBC 60559标准时定义为1,否者数值是未定义

__STDC_IEC_559_COMPLEX__ 

(C99)复数运算实现复合IBC 60559标准时定义为1,否者数值是未定义

__STDC_ISO_10646__ 

(C99)定义为长整型常量,yyyymmL表示wchar_t值复合ISO 10646标准及其指定年月的修订补充,否则数值未定义

1、release时,屏蔽log

  1. #if  defined  (DEBUG)  &&  DEBUG  ==  1    
  2. #else    
  3. #define  NSLog(...)  {};    
  4. #endif    

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

  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、设备相关

  1. #define  isRetina  ([UIScreen  instancesRespondToSelect or:@selector(currentMode)]  ?  CGSizeEqualToSize(CGSizeMake(640,  960),  [[UIScreen  mainScreen]  currentMode].size)  :  NO)    
  2. #define  iPhone5  ([UIScreen  instancesRespondToSelect or:@selector(currentMode)]  ?  CGSizeEqualToSize(CGSizeMake(640,  1136),  [[UIScreen  mainScreen]  currentMode].size)  :  NO)    
  3. #define  isPad  (UI_USER_INTERFACE_IDIOM()  ==  UIUserInterfaceIdiomPad)    
  4. #define  CurrentSystemVersion  ([[UIDevice  currentDevice]  systemVersion])    
  5. #define  CurrentLanguage  ([[NSLocale  preferredLanguages]  objectAtIndex:0])     

4、 区分模拟器和真机

  1. #if  TARGET_OS_IPHONE    
  2. //iPhone  Device    
  3. #endif    
  4. #if  TARGET_IPHONE_SIMULATOR    
  5. //iPhone  Simulator    
  6. #endif    

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

  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、付费专栏及课程。

余额充值