美文网首页
iOS开发常用的宏

iOS开发常用的宏

作者: LennonLin | 来源:发表于2016-07-22 15:25 被阅读30次
    • 很久没写了,今天一下子看到一个人关注小小的激动一下

    适配屏幕尺寸的宏

    • 根据不同的iPhone尺寸宽高来设置大小,UI常常用iPhone6来设置尺寸,为了适配定义的宏:
    #ifndef W_H_
    #define W_H_
    #define  SCREENWIDTH ([UIScreen mainScreen].bounds.size.width)
    #define  SCREENHEIGHT ([UIScreen mainScreen].bounds.size.height)
    
    // 依照iPhone6的尺寸设计
    #define GETPIXEL (SCREENWIDTH / 375)
    #define AUTOLAYOUTSIZE(size) (size * GETPIXEL)
    
    #endif
    
    • 解释: 做成了代码块和加了宏保护,根据iPhone手机的尺寸显示按比例来的尺寸

    RGB

    • UI给我们的常常是RGB颜色,所以需要我们转换一下:
    #define RGBCOLOR(R, G, B, A) [UIColor colorWithRed:R/255.0 green:G/255.0 blue:B/255.0 alpha:A]
    

    宏打印

    • 显示类名,行号,不然常常不知道自己的打印在哪里:
    #define NSLog(FORMAT, ...) fprintf(stderr,"%s:%d  \t%s\n",[[[NSString stringWithUTF8String:__FILE__] lastPathComponent] UTF8String], __LINE__, [[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]);
    
    • 解释: fprintf是C/C++的一个格式化库函数,fprintf()函数根据指定的format发送参数到stream(流)指定的文件,fprintf()只能和printf()一样工作,fprintf()的返回值是输出的字符数,发送错误时返回一个负值
    • FILF: 当前文件夹的路径,取lastPathComponent最后一个组件就成了类名
    • LINE: 当前运行的代码的行号数字
    • VA_ARGC(variadic macros): 可变参数宏,让宏NSLog可以接收多个参数

    因为markdown的原因__打不出来,大家注意一下咯

    Debug打印,Release不打印:

    // 在 "Target > Build Settings > Preprocessor Macros > Debug" 里有一个"DEBUG=1"。
    //设置为Debug模式下,Product-->Scheme-->SchemeEdit Scheme设置Build Configuration成Debug时,就可以打印nslog了。设置Release,发布app版本的时候就不会打印了,提高了性能
    #ifdef DEBUG
    #define NSLog(FORMAT, ...) fprintf(stderr,"%s:%d  \t%s\n",[[[NSString stringWithUTF8String:__FILE__] lastPathComponent] UTF8String], __LINE__, [[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]);
    #define debugMethod() NSLog(@"%s", __func__)
    #else
    #define NSLog(...)
    #define debugMethod()
    #endif
    

    相关文章

      网友评论

          本文标题:iOS开发常用的宏

          本文链接:https://www.haomeiwen.com/subject/glyijttx.html