鉴于有同学私信我说 #define
了还是Hook不到。首先你要看看 log 里 MS:Notice:
给了你什么提示。 #define
可以帮你解决了编译期间提示的Error,但是并不就完事了。
#define CN_CLASS 你丫的想HOOK我
当你make或者Xcode Build时,theos或者iOSOpendev会帮你转成这个样子:
Class _logos_classCN_CLASS = objc_getClass("CN_CLASS");
而正确的应该转成这样才对:
Class _logos_classCN_CLASS = objc_getClass("你丫的想HOOK我");
所以需要手动改。像我这种懒鬼是用iOSOpendev的,所以直接在.mm文件里面改了,再把iosod --xcbp
注释掉,以免它又覆盖了我的修改过的.mm文件,重新⌘+B就好。
至于方法名是中文名是不会造成这样的问题,自己看.mm就知道了。
至于纯用theos环境编译的,自己可以去看看theos源码,修改一下达到你的目的。或者,问问一楼的大神怎么折腾的。