美文网首页
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