冒充之前验证方法签名

时间:2018-12-11 21:35:30

标签: objective-c method-signature swizzling

我一直在使用方法转换来交换实现以进行单元测试。但是,我担心如果生产代码的方法签名由于参数更改而发生更改,则单元测试将正确编译,并且测试运行时行为可能不稳定。

那么,有没有任何编译时甚至运行时的方法来确认两个Objective-C方法的签名相同?

1 个答案:

答案 0 :(得分:1)

只要您设置了单元测试,使得编写的代码就像您正在使用其真实接口调用真实类的实例一样,则应在编译时捕获签名更改。

您可以遍历运行时并获取方法签名,然后比较所述签名的元素以实现兼容性,但不会捕获所有更改(例如,所有接受对象的参数都编码为'@ ')。