zoukankan      html  css  js  c++  java
  • 在oc中一些常用的宏定义总结

    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中设置了,

    烟雨林-关注程序员的IT科技博客
    如果你设置成Yes,那么你的waring就等于error,编译不了的哦。

     

  • 相关阅读:
    outlook express 发不出邮件问题
    当您更改为一个值该值不是有效的启动参数对于群集实例的 SQL Server 2000 或 SQL Server 2005 的 SQL Server 服务不能启动
    (转)为gridview“删除”列添加确认对话框
    关于开心网
    Windows 群集(一)
    你们公司有软件实验室吗?
    数据安全性小结
    请教:如何限制C++.net托管组件在设计时不能运行?
    test:请不要访问
    将WDL(华康)等电子文件转换为PDF后转换其它格式文件的方法
  • 原文地址:https://www.cnblogs.com/fuunnyy/p/5275432.html
Copyright © 2011-2022 走看看