iOS集成MLeaksFinder+FBRetainCycleD
2019-01-16 本文已影响0人
李俊康
一、cocoapods导入
只需要在podfile文件中加入相关库即可。
pod 'MLeaksFinder'
二、手动集成
1.下载集成支持库
MLeaksFinder ---Git地址:> https://github.com/Tencent/MLeaksFinder。
FBRetainCycleDetector---Git地址:> https://github.com/facebook/FBRetainCycleDetector。
1.将相关支持库拖入到工程中:
![](https://img.haomeiwen.com/i2962634/5569084e5711e882.png)
![](https://img.haomeiwen.com/i2962634/399ee0664b5a69cd.png)
2.更改支持库中类在arc环境中运行
将库拖入工程后会出现以下错误,
![](https://img.haomeiwen.com/i2962634/06aa9e652e1756a1.png)
这是这些文件需要mrc运行导致的。按照提示更改相关类的配置即可。
![](https://img.haomeiwen.com/i2962634/65e9c1d4e6d9a4a7.png)
更改完这些配置后即可编译成功。
2.更改头文件和开关使循环引用的支持库生效。
1.手动集成之前需要先了解一下系统宏的使用:
#ifdef 条件 一
//条件一成立,执行语句一
语句一
#elif 条件二
//条件二成立,执行语句二
语句二
#endif
在MLeaksFinder.h中有开关控制是否开启循环引用检测,就是是否使用FBRetainCycleDetector库的相关类。代码如下:
//是否开启循环引用检测,默认是不开启的,被注释掉了
//#define MEMORY_LEAKS_FINDER_RETAIN_CYCLE_ENABLED 1
//条件判断开启循环引用检测的情况,
#ifdef MEMORY_LEAKS_FINDER_RETAIN_CYCLE_ENABLED
#define _INTERNAL_MLF_RC_ENABLED MEMORY_LEAKS_FINDER_RETAIN_CYCLE_ENABLED
#elif COCOAPODS
#define _INTERNAL_MLF_RC_ENABLED COCOAPODS
#endif
2.打开开关更改配置。
#define MEMORY_LEAKS_FINDER_RETAIN_CYCLE_ENABLED 1
3.打开循环引用检测的配置的话,会引用FBRetainCycleDetector库的文件,会报错误:
![](https://img.haomeiwen.com/i2962634/87efc17c243ec464.png)
更改引入方式:
![](https://img.haomeiwen.com/i2962634/79dec20543810d9f.png)
这样就可以正常使用了。