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

C代码
  1. #ifdefined(DEBUG)&&DEBUG==1
  2. #else
  3. #defineNSLog(...){};
  4. #endif

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

C代码
  1. #defineBACK(block)dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0),block)
  2. #defineMAIN(block)dispatch_async(dispatch_get_main_queue(),block)

3、设备相关

C代码
  1. #defineisRetina([UIScreeninstancesRespondToSelector:@selector(currentMode)]?CGSizeEqualToSize(CGSizeMake(640,960),[[UIScreenmainScreen]currentMode].size):NO)
  2. #defineiPhone5([UIScreeninstancesRespondToSelector:@selector(currentMode)]?CGSizeEqualToSize(CGSizeMake(640,1136),[[UIScreenmainScreen]currentMode].size):NO)
  3. #defineisPad(UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPad)
  4. #defineCurrentSystemVersion([[UIDevicecurrentDevice]systemVersion])
  5. #defineCurrentLanguage([[NSLocalepreferredLanguages]objectAtIndex:0])

4、区分模拟器和真机

C代码
  1. #ifTARGET_OS_IPHONE
  2. //iPhoneDevice
  3. #endif
  4. #ifTARGET_IPHONE_SIMULATOR
  5. //iPhoneSimulator
  6. #endif

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

C代码
  1. #if__has_feature(objc_arc)
  2. //compilingwithARC
  3. #else
  4. //compilingwithoutARC
  5. #endif

长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号





    联系我们

    欢迎来到TinyMind。

    关于TinyMind的内容或商务合作、网站建议,举报不良信息等均可联系我们。

    TinyMind客服邮箱:support@tinymind.net.cn