2012-03-25 44 views
4

说我有协议ProA和ProB。他们都有一个方法 - (void)testingMethod;多种协议中的相同方法应该做什么? (目标C)

而我有另一个ClassAB实现这两个协议。我应该为测试方法做些什么?

我知道我们只能实现一个testingMethod。但是,如果我想在ClassA类中分别使用ProA和Prob中的两个testingMethods,我该怎么办?

+0

为什么你需要在两种协议中都有一个同名的方法? – yuji 2012-03-25 12:35:47

+0

我们可以假设的协议不是由我定义,例如,AViewDelegate和BViewDelagate,都有方法viewDidLoaded – softempire 2012-03-25 12:42:53

+1

[正确命名的委托方法(https://developer.apple.com/library/mac/#documentation/Cocoa/概念/ CodingGuidelines/Articles/NamingMethods.html#// apple_ref/doc/uid/20001282-1001803-BCIDAIJE)标识正在进行委托的班级,因为他们应该将参考传递给发件人。所以这在实践中不太可能发生。尤其是使用Apple自己的API。 – yuji 2012-03-25 12:49:31

回答

1

只需重命名第一个协议的方法来testingMethod1和方法在第二个协议testingMethod2

3

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

如果不清楚告诉我和我写的工具。

+0

了解问题并给出建设性答案的好答案。 – Jonny 2016-12-09 01:29:16