拖入LEETheme后,导致控制器、视图不走dealloc方法
2020-05-05 本文已影响0人
曾经像素有点低
一、验证问题:
-
1.创建一个HelloWord项目,
-
2.创建两个控制器
A_ViewController
和B_ViewController
, -
3.
A
为rootVC,A进入B,然后B点击返回后,B正常调用dealloc释放
; -
4.拖入LEETheme后,导致B_ViewController
不走dealloc
方法;
就是这三个文件,一旦拖入项目,
不用引入头文件,
不用任何操作,
就会导致整个项目里的控制器都不走dealloc
二、开始着手定位问题:
1.断点调试 ==》发现项目断在:LEETheme.m文件
// LEETheme.m文件的
- (BOOL)isLeeTheme{
现象:
该方法会随时被调用;
1.初始化控制器会调用
2.项目开启后,会时不时自己调用一下;
↓↓↓↓↓↓
LEEThemeConfigObject
- 追踪,发现是由lee_theme_dealloc方法一直在被调用引起的;
截屏2020-05-05 下午11.13.01.png | 加了一个 NSLog后, Mac都被搞 死机了😂 |
---|---|
LEEThemeConfigObject |
↓↓↓↓↓↓
@implementation NSObject (LEEThemeConfigObject)
重写了+(void) load{ } 方法;
截屏2020-05-05 下午11.44.00.png
- 不是很懂应该怎么改,申请添加作者好友了,明天问问作者吧
//
LEE神的代码很优雅,不敢随随便便更改,
注释了method_exchangeImplementations(originalMethod, leeMethod);暂时不出现问题了。
几天后
LEE神居然同意我申请加好友了——灰常感谢😄
经过LEE神的指点,发现问题并没有出现在LEETheme 的Demo中,
我对比了一下,发现了问题所在了