Category的实现原理

Category的底层数据结构Category编译后,其本质是一个结构体struct _category_t { const char *name; // 类名(Person) struct _class_t *cls; // 类对象指针(指向Person类对象) const struct _method_list_t *instance_methods; // 实例方法

- 阅读全文 -

iOS App运行时Crash解决方案

目标:在App运行时发生Crash,自动进行保护或修复,让App流畅运行,不至于闪退退出;iOS常见的Crash包括:字典Crash数组Crash字符串异常解决方案:void swizzleMethodWithMetaClass(Class cls, SEL originSelector, Method oriMethod, SEL swizzleSelector, Method swizzled

- 阅读全文 -

iOS Button 左文字右图片

[self addSubview:button]; [button mas_makeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(self).offset(spaceWidth + i * buttonWidth); make.top.bottom.equalT

- 阅读全文 -

iOS动态修改app图标(icon)

动态修改app图标(icon)动态修改app的图标,就是在不重新安装app的情况下,可以修改当前的icon图标;在某些情况下,是有这个需求的;例如,可以更换 主题的app中,一般都会有一套完整的主题包含相应的icon;还有就是一些节日主题的icon或者促销的icon,例如淘宝、京东等的节日icon。@interface UIApplication (UIAlternateApplicationIc

- 阅读全文 -