勾微信一个类所有方法的执行顺序

勾某个类的所有方法的,查看所有方法的执行顺序


使用方法

[BigBang hookClass:@“A_ManageViewController”];

效果图

是不是很赞赶紧star

6 Likes

好好的一个帖子为什么要扯上微信

勾微信方法的时候,发现麻烦,才做这个的

1 Like

有performance impact的数据么

性能肯定会影响,具体数据还没测

:cold_sweat: 跟我之前做的很像啊 https://github.com/qhd/ANYMethodLog

你俩的源码都大致看了下,实现上主要差别是:

1.楼主把类及实例方法的实现都交换给了 _objc_msgForward,然后在每个类/元类都加上了forwardInvocation:方法:

 `class_addMethod(hookClass, @selector(forwardInvocation:), forwardInvocationImpl, "v@:@");`

利用objc_msgSend的快速消息转发机制来实现调回原方法。

2.你的是直接一点,把类及实例方法的实现交换,在新实现里调回原方法。

怕怕,我应该没说错吧。

1 Like

没错。 其实我的dev分支也是用了_objc_msgForward,有些小问题还没合并到master

我只能说有好东西要分享,不然我就省力了。 :grinning::grinning:

怎么使用呢?我的意思是,在什么时机调用这个方法?
新建了一个logos编译的dylib,使用这个并不管用(hook了某个应用的didFinishLaunchingWithOptions,里面执行[BigBang hookClass:@“某个viewcontroller”]),如果是连同应用一起编译这个类,调用是管用的。是什么原因?

发现早就star过你写的东西了:flushed:
你分享过?

已解决,原来打印信息在终端可以显示,之前使用xcode里console没有显示

1 Like

你这种人真不要脸,人家分享出来就说人家抄袭你的,你早期分享出来的帖子拿出来,让大家看看,证据没有就不要脸的说

看见别人的帖子,就往自己脸上贴金,敢问你的证据呢?

他哪说抄袭了?哪来的道德卫士?

那他的话的意思是“:cold_sweat: 跟我之前做的很像啊 https://github.com/qhd/ANYMethodLog”是什么,无非是我比较牛逼,看来是抄袭我的

上面别人都分析了实现都不一样啊

这句就透露,就看不惯,自己不分享出来,在人家帖子下认领别人的东西

傻逼

1 Like

弱弱地问一下,怎么在终端显示打印的:fearful: