说我有协议ProA和ProB。他们都有一个方法 - (void)testingMethod;多种协议中的相同方法应该做什么? (目标C)
而我有另一个ClassAB实现这两个协议。我应该为测试方法做些什么?
我知道我们只能实现一个testingMethod。但是,如果我想在ClassA类中分别使用ProA和Prob中的两个testingMethods,我该怎么办?
说我有协议ProA和ProB。他们都有一个方法 - (void)testingMethod;多种协议中的相同方法应该做什么? (目标C)
而我有另一个ClassAB实现这两个协议。我应该为测试方法做些什么?
我知道我们只能实现一个testingMethod。但是,如果我想在ClassA类中分别使用ProA和Prob中的两个testingMethods,我该怎么办?
你应该在不同的协议分开的通用协议方法,并创建实施较早的协议两个新的协议..看到它是很好的说明如下.. https://stackoverflow.com/a/7992461/919545
只需重命名第一个协议的方法来testingMethod1和方法在第二个协议testingMethod2
还有在那里你只需使用定义的协议与具有相同名称的方法的两个库,巧合的情况下,所以你不能修改它们。
在这种情况下,您需要创建两个类,一个实现每个协议,假设ClassA
为ProA
和ClassB
为ProB
,然后将您的实例ClassAB
传递给它们中的每一个。
当ClassA
收到来自testingMethod
的呼叫时,请将其称为ClassAB的方法,例如classAB testingMethodA
。
如果不清楚告诉我和我写的工具。
了解问题并给出建设性答案的好答案。 – Jonny 2016-12-09 01:29:16
为什么你需要在两种协议中都有一个同名的方法? – yuji 2012-03-25 12:35:47
我们可以假设的协议不是由我定义,例如,AViewDelegate和BViewDelagate,都有方法viewDidLoaded – softempire 2012-03-25 12:42:53
[正确命名的委托方法(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