ViewController页面不走dealloc方法的原因

之前很少用block和delegate,由于页面比较复杂,通常都用通知,这样也可以降低模块之间的耦合性,最近新换了一家公司,其中有一个人脸识别的功能,一直调用图片输出代理方法,导致好用了大量cpu,导致设备发热,交接的时侯,上个同事跟我说是第三方的问题,改不了,解释一下,第三方用的是讯飞的sdk,后来我下了一个讯飞的demo,并没有发现任何问题,然后就在自己项目里面找,发现viewController的dealloc方法并不调用。

经过打断点不断查找,有三个地方有问题,

1.使用代理的时候并没有使用weak关键字


ViewController页面不走dealloc方法的原因


2.使用定时器并没有销毁


ViewController页面不走dealloc方法的原因

3.使用block并没有用weakSelf


ViewController页面不走dealloc方法的原因