ios - Swift 面向协议(protocol)编程,解决命名冲突

标签 ios swift protocols

我玩了一点面向协议(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/

相关文章:

ios - 我们可以动态创建 n no.of NSMutableArray 吗?

iOS Swift,如何删除TableViewCell中的UIView并调整单元格高度?

ios - Swift 如何将触摸点击限制在手机的左侧和右侧

arrays - 对结构数组 [Array][Struct] 的数组进行排序

ios - Swift:符合带有 "where"子句的通用方法协议(protocol)

ios - 推送到另一个 ViewController 时隐藏 NavigationBar

ios - 如何以编程方式将 UICollectionView 添加到容器?

iOS Metal API 在体积内绘制 3d 纹理

generics - Swift 通用类型变量应遵守协议(protocol)(类型类)

ios - Swift 中单例类的委托(delegate)