我玩了一点面向协议(protocol)的编程并遇到了一个可能很常见的案例,但我不知道如何解决。下面我有 2 个协议(protocol),如果该类打算实现该协议(protocol),它们都需要一个名为 param 的变量。但在协议(protocol)中,var 参数是两种不同的类型。那么我怎样才能在不改变协议(protocol)的情况下实现这两者呢?这是代码:
protocol firstProtocol
{
var param:Int { get set }
}
protocol secondProtocol
{
var param:String { get set }
}
class protocolImplementer: firstProtocol, secondProtocol
{
var param:String = "foo"
var param:Int = 0 // Invalid redeclaration of 'param'
}
最佳答案
你不能。 一个类不能有 2 个同名变量。编译器如何决定从某处调用时您引用的是哪个变量? 如果它们具有不同的参数,则可以使用这些方法。
关于ios - Swift 面向协议(protocol)编程,解决命名冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35224493/