iOS - Runtime 学习
一、前言
在维护一个项目时碰见一个问题,调用了一个方法后不起作用,这种问题一般有两个解决思路,一个是看方法有没有起作用,另一个是看是不是其他的方法打断了这个方法,比如设置 UIButton 的隐藏,但在另一个地方,又把它设置成显示了。这种问题在工程里通过调试代码一般都很好解决。
但是当它发生在我调用了一个 SDK 方法不起作用时,按照上文的思路,一查看是否是 SDK 方法的问题,这个除了向 SDK 提供人员反应没有其他更好的解决方法了,二是查看是否其他地方也调用了这个方法,使用了不同的参数导致本次的调用失效了。如果这个方法调用的少,可以全局搜索,然后注释掉方法,但是如果之前项目不是你开发的,你只是后期切入进来,同时代码结构一时半会还不能很好把握到,总之想快速利落的排除问题,这时你可以考虑用 Runtime 的特性,把 SDK 里的方法用自己写的替换掉。
先老调重弹一遍,什么是 Runtime?