在多种协议中应该采用相同的方法做什么? (目标C)

时间:2012-03-25 12:30:58

标签: objective-c protocols

说我有ProA和ProB协议。他们都有一个方法 - (void)testingMethod;

我有另一个类ClassAB,它实现了这两个协议。我该怎么做testingMethod?

我知道我们只能实现一个testingMethod。但是,如果我想在ClassAB类中分别为ProA和Prob提供两个testingMethod,我该怎么办?

3 个答案:

答案 0 :(得分:3)

还有一种情况是你只是使用两个库来定义具有相同名称的方法的协议,巧合,所以你不能修改它们。
在这种情况下你需要创建两个类,一个实现每个协议,假设ClassAProAClassBProB,然后将ClassAB的实例传递给每个协议。
ClassA收到来自testingMethod的来电时,您会调用ClassAB的方法,例如classAB testingMethodA

如果不清楚告诉我并且我写了工具。

答案 1 :(得分:2)

你应该在不同的协议中分离通用协议方法,并创建两个实现早期协议的新协议..请看这里有很好的解释.. https://stackoverflow.com/a/7992461/919545

答案 2 :(得分:1)

只需将第一个协议中的方法重命名为testingMethod1,将第二个协议中的方法重命名为testingMethod2