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. #if defined (DEBUG) && DEBUG == 1
  2. #else
  3. #define NSLog(...) {};
  4. #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. #define iPhone5 ([UIScreen instancesRespondToSelector:@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、区分模拟器和真机

C代码  

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

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

C代码  

  1. #if __has_feature(objc_arc)
  2. //compiling with ARC
  3. #else
  4. // compiling without ARC
  5. #endif
时间: 2024-08-09 06:34:47

IOS开发之----常用宏定义和讲解的相关文章

iOS开发中使用宏定义提高开发效率

iOS开发中使用宏定义提高开发效率 (2013-07-10 10:47:33) 转载▼ iOS开发中,巧妙的使用宏定义,可以提高开发效率,本篇简单介绍一下宏的定义,设置,应用,并在未来实践中不断追加一些常用的宏定义. 调试Log iPhone应用程序开发调试的时候,在代码中加入NSLog的暴力调试方法是很频繁的,但是在release的时候要删除这些调试代码,那工作量是烦躁,这样的情况下,试用宏就会显得非常的方便. 看下面的例子: #ifdef DEBUG #define LOG(...) NSL

ios开发之常用宏的定义

有些时候,我们需要将代码简洁化,这样便于读代码.我们可以将一些不变的东东抽取出来,将变化的东西作为参数.定义为宏,这样在写的时候就简单多了. 下面例举了一些常用的宏定义和大家分享: 1. 判断设备的操作系统是不是ios7 view sourceprint? 1.#define IOS7   (  [[[UIDevice currentDevice].systemVersion doubleValue] >= 7.0] ) 2. 判断当前设备是不是iPhone5 view sourceprint?

iOS开发常见的宏定义(实用)

iOS开发过程中使用一些常用的宏可以提高开发效率,提高代码的重用性:将这些宏放到一个头文件里然后再放到工程中的-Prefix.pch文件中(或者直接放到-Prefix.pch中)直接可以使用,灰常方便. 做了一些分类和注释,可以根据自己习惯再添加或者删除或者修改这些宏进行使用. #ifndef MacroDefinition_h #define MacroDefinition_h //AppDelegate #define APPDELEGATE [(AppDelegate*)[UIApplic

iOS开发-常见宏定义

有些时候,我们需要将代码简洁化,这样便于读代码.我们可以将一些不变的东东抽取出来,将变化的东西作为参数.定义为宏,这样在写的时候就简单多了. 下面例举了一些常用的宏定义和大家分享: 1. 判断设备的操作系统是不是ios71.#define IOS7   (  [[[UIDevice currentDevice].systemVersion doubleValue] >= 7.0] ) 2. 判断当前设备是不是iPhone51.#define kScreenIphone5    (([[UIScr

iOS 程序员开发最常用宏定义

在.pch文件里导入即可 //界面宽高#define BatteryHeight 20.0#define NavBarHeight  44.0#define TabBarHeight  49.0 #define SCREEN_WIDTH ([UIScreen mainScreen].bounds.size.width)#define SCREEN_HEIGHT ([UIScreen mainScreen].bounds.size.height) #define APP_VERSION ([[[N

IOS开发中常用的宏定义

有些时候,我们需要将代码简洁化,这样便于读代码.我们可以将一些不变的东东抽取出来,将变化的东西作为参数.定义为宏,这样在写的时候就简单多了. 下面例举了一些常用的宏定义和大家分享: 1. 判断设备的操作系统是不是ios7 #define IOS7 ( [[[UIDevice currentDevice].systemVersion doubleValue] >= 7.0] ) 2. 判断当前设备是不是iPhone5 #define kScreenIphone5 (([[UIScreen main

iOS 常用宏定义

下面是在iOS开发中常用的一些宏定义: //一般的提示信息 #define mAlertView(title, msg) \ UIAlertView *alert = [[UIAlertView alloc] initWithTitle:title message:msg delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; [alert show]; #define SYSTEM_VERSION_GREATER_TH

iOS开发中常用的参数传递方法

在iOS开发中常用的参数传递有以下几种方法: 采用代理模式 采用iOS消息机制 通过NSDefault存储(或者文件.数据库存储等) 通过AppDelegate定义全局变量(或者使用UIApplication.定义一个单例类等) 通过控制器属性传递 使用代理方式传递参数的步骤如下: 1.定义协议,协议中定义好传参时所需要的方法 2.目标视图控制器定义一个代理对象 3.源视图控制器实现协议并在初始化目标控制器时指定目标控制器的代理为其自身 4.需要传参的时候在目标窗口调用代理的协议方法

iOS 7:漫谈#define 宏定义(转)

iOS 7:漫谈#define 宏定义 #define宏定义在C系开发中可以说占有举足轻重的作用.底层框架自不必说,为了编译优化和方便,以及跨平台能力,宏被大量使用,可以说底层开发离开define将寸步难行.而在更高层级进行开发时,我们会将更多的重心放在业务逻辑上,似乎对宏的使用和依赖并不多.但是使用宏定义的好处是不言自明的,在节省工作量的同时,代码可读性大大增加. 如果想成为一个能写出漂亮优雅代码的开发者,宏定义绝对是必不可少的技能(虽然宏本身可能并不漂亮优雅XD).但是因为宏定义对于很多人来