Category的实现原理
Category的底层数据结构Category编译后,其本质是一个结构体struct _category_t { const char *name; // 类名(Person) struct _class_t *cls; // 类对象指针(指向Person类对象) const struct _method_list_t *instance_methods; // 实例方法
Category的底层数据结构Category编译后,其本质是一个结构体struct _category_t { const char *name; // 类名(Person) struct _class_t *cls; // 类对象指针(指向Person类对象) const struct _method_list_t *instance_methods; // 实例方法
目标:在App运行时发生Crash,自动进行保护或修复,让App流畅运行,不至于闪退退出;iOS常见的Crash包括:字典Crash数组Crash字符串异常解决方案:void swizzleMethodWithMetaClass(Class cls, SEL originSelector, Method oriMethod, SEL swizzleSelector, Method swizzled