有些时候,我们需要将代码简洁化,这样便于读代码。我们可以将一些不变的东东抽取出来,将变化的东西作为参数。定义为宏,这样在写的时候就简单多了。

下面例举了一些常用的宏定义和大家分享:

1. 判断设备的操作系统是不是ios7
1.#define IOS7   (  [[[UIDevice currentDevice].systemVersion doubleValue] >= 7.0] )

2. 判断当前设备是不是iPhone5
1.#define kScreenIphone5    (([[UIScreen mainScreen] bounds].size.height)>=568)

3.获取当前屏幕的高度
1.#define kMainScreenHeight ([UIScreen mainScreen].applicationFrame.size.height)

4.获取当前屏幕的宽度
1.#define kMainScreenWidth  ([UIScreen mainScreen].applicationFrame.size.width)

5.获得RGB颜色
1.#define SMSColor(r, g, b) [UIColor colorWithRed:(r)/255.0 green:(g)/255.0 blue:(b)/255.0 alpha:1.0]

6..自定义Log

#ifdef DEBUG
#define SMSLog(...) NSLog(__VA_ARGS__)
#else
#define SMSLog(...)
#endif

7.单例

01.// @interface
02.#define singleton_interface(className)
03.+ (className *)shared##className;
04. 
05. 
06.// @implementation
07.#define singleton_implementation(className)
08.static className *_instance;
09.+ (id)allocWithZone:(struct _NSZone *)zone
10.{
11.static dispatch_once_t onceToken;
12.dispatch_once(&onceToken, ^{
13._instance = [super allocWithZone:zone];
14.});
15.return _instance;
16.}
17.+ (className *)shared##className
18.{
19.static dispatch_once_t onceToken;
20.dispatch_once(&onceToken, ^{
21._instance = [[self alloc] init];
22.});
23.return _instance;
24.}

 
 
 

最新文章

  1. Android 中的mvvm
  2. OpenCascade Primitives BRep-Cylinder
  3. JavaScript----Js操控-HTML5 <progress> 标签
  4. Linux 系统启动过程
  5. 笨办法学 Python (Learn Python The Hard Way)
  6. CentOS 7 httpd服务的安装、配置
  7. [SAP ABAP开发技术总结]动态语句、动态程序
  8. MongoDB 一对多关系建模
  9. 一天一个Java基础——序列化
  10. 设置CentOS里的Mysql开启客户端远程连接
  11. jQuery自学笔记(五):关于jQuery的遍历
  12. 快速排序(Quick Sort)
  13. 移动端Web资源整合
  14. JavaIO流——简单对文件的写入及读取(二)
  15. 区分TCP包的顺序
  16. nginx 限制并发访问及请求频率
  17. SpringBoot入门 (八) Cache使用
  18. protobuf 嵌套示例
  19. centos7安装mysql5.7的终极解决方案
  20. base64编码的原理及实现

热门文章

  1. 美丽的表格样式(使用CSS样式表控制表格样式)
  2. 由阿里巴巴一道笔试题看Java静态代码块、静态函数、动态代码块、构造函数等的执行顺序
  3. JavaScript和prototype
  4. 2013ACM暑假集训总结-致将走上大三征途的我
  5. Quartz contention when running in load balanced environment--reference
  6. 第二篇:R语言数据可视化之数据塑形技术
  7. Word 查找和替换的通配符
  8. 免写前缀JS包--prefixfree.min.js--插件
  9. NET平台下的Excel编程|C#操作Excel|Application和ApplicationClass的联系和区别
  10. (转)phpmyadmin操作技巧:如何在phpmyadmin里面复制mysql数据库?