使用炮筒机器人(Automator)来检测内存泄漏-block相关(CheckLeak)

使用炮筒机器人(Automator)来检测内存泄漏-block相关(CheckLeak)

在iOS开发中我们经常用到block,无论是GCD还是参数传递,block都是一个很不错的选择。然而有利也有弊,block使用不注意的话会产生循环引用。
        global_myAnimation(^{
                                             self.view.backgroundColor = [UIColor redColor];  
                                         });
这里的block中用了self,导致viewcontroller不能调dealloc。

脚本思路:
block的样式:一个^后面有{和}
block里面的self:如果一个self字段它的前后都不是字母数字下划线(不是weakSelf活着wself),那它就是我们要找的self。
1、遍历工程里面的所有.m文件
2、查找^
3、匹配后面的一对{}记住位置
4、查找{}里面符合规则的self
5、调用mac的通知中心通知自己哪里有问题

脚本使用方法:
需要安装的库
1.pyobjc
需要设置的参数
1.projectPath(工程所在路径)
如:projectPath = "/Users/abc/Documents/iostest"

2.noPath(不检测路径)
如:noPath = ['ThirdLibs','iosTools']
或:noPath = None(检测工程下所有路径)

3.NormalCheck(普通模式,False:检测所有,True:不检测不检测路径和动画产生的self)
如:True

1、打开Automator


2、点击新建


3、选择工作流程,然后点击选取


4、点击实用工具->运行Shell脚本


5、双击 运行脚本

6、选择/usr/bin/python


7、清除里面的内容,将脚本复制粘贴到里面,运行就可以。


8、


9、

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值