objc_getClass和object_getClass工作上能被逼哭的问题

今天遇到一个超级奇葩的问题。。。先说一下场景,在发版提审前,产品给了一个需求。要我们预留一个webview的外链跳转,但是还不确定链接的地址。我们就先做了一个跳转我们html5的wkwebview,然后等js把地址传过来的时候,我们再把当前的webview替换掉。

如图。。。然后就出了一个问题,因为没有push/pop进出栈,tabbar出现在webview上面了,本来想着直接隐藏就行了,结果返回rootviewcontroller也没有显示。就想重写系统的setViewControllers:animated:方法,引入tabbar的隐藏属性。

接下来就是让我头疼的时候了,我习惯性的写好方法

然后用调用

[object_getClass(@"UINavigationController") swizz:@selector(setViewControllers:animated:) withToMeth:@selector(swizzSetViewController:animated:)];    ❗️//错误的写法。。。❗️

就悲剧了,怎么都找不到SwizzMeth和meth方法,找伙伴来看了半天也找不到,急死了。好吧,最后过了以一个多小时才发现问题所在,自己百度以后试了一下

正确的写法哦‍♂️

然后就又找了objc_getClass和object_getClass的区别。

这两种写法都可以,一种是c语言的写法获取当前类的实例或者类方法,一种是oc的。一个是传入类名返回类的对象,一个是传入instance对象或者class对象,返回class对象。终于完美解决了问题。。。

你可能感兴趣的:(objc_getClass和object_getClass工作上能被逼哭的问题)