/**
在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
网友评论