iOS开发中常用的宏

2016-10-29  本文已影响17人  柴家二少001

/**

在Release版本禁止输出NSLog内容

因为NSLog的输出还是比较消耗系统资源的,而且输出的数据也可能会暴露出App里的保密数据,所以发布正式版时需要把这些输出全部屏蔽掉。

我们可以在发布版本前先把所有NSLog语句注释掉,等以后要调试时,再取消这些注释,这实在是一件无趣而耗时的事!还好,还有更优雅的解决方法,就是在项目的prefix.pch文件里加入下面一段代码,加入后,NSLog就只在Debug下有输出,Release下不输出了。

*/

#ifndef __OPTIMIZE__

#define NSLog(...) NSLog(__VA_ARGS__)

#else

#define NSLog(...) {}

#endif

#define __MainScreenFrame [[UIScreen mainScreen] bounds]

//设备屏幕宽

#define __MainScreen_Width ((__MainScreenFrame.size.width)<(__MainScreenFrame.size.height)?(__MainScreenFrame.size.width):(__MainScreenFrame.size.height))

#define __MainScreen_Height ((__MainScreenFrame.size.height)>(__MainScreenFrame.size.width)?(__MainScreenFrame.size.height):(__MainScreenFrame.size.width))

#define iPhone4 (CGSizeEqualToSize(CGSizeMake(320, 480), CGSizeMake(__MainScreen_Width, __MainScreen_Height)))

#define iPhone5 (CGSizeEqualToSize(CGSizeMake(320, 568), CGSizeMake(__MainScreen_Width, __MainScreen_Height)))

#define iPhone6 (CGSizeEqualToSize(CGSizeMake(375, 667), CGSizeMake(__MainScreen_Width, __MainScreen_Height)))

#define iPhone6plus (CGSizeEqualToSize(CGSizeMake(414, 736), CGSizeMake(__MainScreen_Width, __MainScreen_Height)))

//版本号

#define kCurrentSystemVersion ((CGFloat)[[[UIDevice currentDevice] systemVersion] floatValue])

//获取当前语言

#define kCurrentLanguage ([[NSLocale preferredLanguages] objectAtIndex:0])

//快速的查看一段代码的执行时间

//使用方法:在想要查看执行时间的代码的地方进行这么处理

//Any parameter:是为了区分startTime的参数名称的变化 以##来拼接

/*

*  TICK(Any parameter)

*  //do your work here

*  TOCK(Any parameter)

*/

#ifndef __OPTIMIZE__

#define TICK(timeName)  NSDate *startTime##timeName = [NSDate date];

#define TOCK(timeName)  NSLog(@"Time %s: %f", #timeName, -[startTime##timeName timeIntervalSinceNow]);

#else

#define TICK(timeName)

#define TOCK(timeName)

#endif

上一篇 下一篇

猜你喜欢

热点阅读