1.打印CGRect,Size,Point

#define NSLogRect(rect) NSLog(@"%s x:%.4f, y:%.4f, w:%.4f, h:%.4f", #rect, rect.origin.x, rect.origin.y, rect.size.width, rect.size.height)
#define NSLogSize(size) NSLog(@"%s w:%.4f, h:%.4f", #size, size.width, size.height)
#define NSLogPoint(point) NSLog(@"%s x:%.4f, y:%.4f", #point, point.x, point.y)

2.宏定义的销毁

#define NetworkOn //定义一个宏,如果该宏定义了,则在应用里使用网络

-(void)closeNetwork
{
//突然发生意外的情况,网络无法使用了,调用该方法,取消NetworkOn的宏定义
#undef NetworkOn
}

3.条件编译语句 #if #else #endif

1》判断是否开启ARC,有些库需要ARC支持,则在编译之前可以判断用户有没有开启ARC,同样__has_feature(objc_arc)这玩意儿也是xcode预置的 , 前缀是这个的"__"都是预定宏;

#if !__has_feature(objc_arc)
//如果没有开启ARC这里可以做一些错误处理 比如:
#error "啊 啊 啊~ 伦家需要ARC"
#endif

2》对不同版本的os系统做策略

#if __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_7_0
//如果ios版本低于7.0,这里可以干一些事情
#endif

3》判断设备类型

#define IS_IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
#ifdef IS_IPAD
//这台设备是IPAD呀~~~~
#else
//这货是IPhone
#endif

4》对于常用的编译语句总结

//这个东西简单但是很常使用,正所谓IF在手,天下我有 哈哈哈
#if define #ifdef #ifndef #elif
  #if define = #ifdef
  #if !define = #ifndef
  #elif = "else if"

5》错误、警告处理  #error 这个可以终止不满足使用条件的库不被编译

#if !__has_feature(objc_arc)
#error "我的低调不是你装逼的资本!这个库需要开启ARC,不然你别用!"
#endif

6》对于一些警告的强制措施,做一个高逼格的程序猿

  如果你在Xcode中设置了,

如果你设置成Yes,那么你的waring就等于error,编译不了的哦。

 

最新文章

  1. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(11)-系统日志和异常的处理①
  2. Java中区别.toString() ,(String),valueOf()方法
  3. Windows下查看进程及结束进程命令[转]
  4. Stage3D学习笔记(二):使用GPU绘制一个三角形
  5. [FML]学习笔记二 PAC Learning Model
  6. Mr. Kitayuta&#39;s Colorful Graph 多维并查集
  7. as3 页游中,新手指导中,屏蔽所有交互对象,但除了指定交互对象可用的方法【转http://blog.csdn.net/linjf520/article/details/9450945】
  8. &amp;&amp;与||的用法总结
  9. Python用Tkinter的Frame实现眼睛护士的倒计时黑色屏幕
  10. Entity Framework技巧系列之七 - Tip 26 – 28
  11. solr研磨之游标分页
  12. PHP 数组反转(值有重复)
  13. ORACLE 数据库使用正则表达式重新计算指定位置的数字为新的数字
  14. 聊聊数据库~2.SQL环境篇
  15. Mysql 提升大数据表的拷贝效率
  16. &lt;20190106&gt;千兆 小型局域网传输速率不达标问题解决
  17. 网络通信协议之ICMP
  18. Python创建第一个django应用
  19. JAVA声明一个对象数组
  20. mysql出现1030 Got error 28 from storage engine解决方法

热门文章

  1. LaTeX 如何在文档的侧面插入图片实现&quot;绕排&quot;?
  2. ZSTU 4241 圣杯战争(ST表+二分)
  3. Codeforces 696E ...Wait for it...(树链剖分)
  4. House Robber(动态规划)
  5. chattr&amp;chown&amp;cat&amp;cut&amp;useradd&amp;passwd&amp;chage&amp;usermod
  6. linux的history命令设置
  7. Android_自己定义切换控件SwitchView
  8. 我猜你不会使用try-catch
  9. Android自己定义控件
  10. 配置Office Outlook 2013