美文网首页
OC:菜鸟看开源

OC:菜鸟看开源

作者: 春暖花已开 | 来源:发表于2021-11-14 19:06 被阅读0次

    写在最前:
    以下是菜鸟读开源库看到的一些比较有意思的东西记录及心得,仅限于自己回顾,不保证理解正确。


    一、YYKit系列

    1. YYSYNTH_DUMMY_CLASS(NSString_YYAdd)
    /**
     Add this macro before each category implementation, so we don't have to use
     -all_load or -force_load to load object files from static libraries that only
     contain categories and no classes.
     Example:
         YYSYNTH_DUMMY_CLASS(NSString_YYAdd)
     */
    #ifndef YYSYNTH_DUMMY_CLASS
    #define YYSYNTH_DUMMY_CLASS(_name_) \
    @interface YYSYNTH_DUMMY_CLASS_ ## _name_ : NSObject @end \
    @implementation YYSYNTH_DUMMY_CLASS_ ## _name_ @end
    #endif
    

    当使用静态库中有分类的时候,我们必须加上-ObjC-all_load-force_load,但这样都会使可执行文件的体积变大。YYKit 中的这个宏定义在 分类之前加了一个空类,这样.m实现文件就包含了类,生成的 .o文件就会被链接器打包进最终的可执行文件,从而避免了 "selector not recognized"的出现。

    1. 判断运行的环境是否为模拟器
    - (BOOL)isSimulator {
    #if TARGET_OS_SIMULATOR
        return YES;
    #else
        return NO;
    #endif
    }
    

    延伸:多了解一些宏定义,善于运用,能使代码更简洁,解决问题方式更好。

    相关文章

      网友评论

          本文标题:OC:菜鸟看开源

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