swift - 你如何命名 Swift 协议(protocol)中的函数?

标签 swift swift-protocols

当我像这样在 Swift 中声明协议(protocol)时,对于网络模块来说:

Protocol MyNetworkProtocol {
    func reportError(error: Int)   // <-- do you add prefix for this?
}

如何命名协议(protocol)中的函数?你给它加前缀吗?

我问这个是因为如果我按上面所示命名函数,调用者会像:

class MyClass: MyNetworkProtocol {

    // some code for MyClass

    func reportError(error: Int) {
        // some code to handle it
    }
}

如果我单独查看MyClass中的代码,reportError不能立即被识别为另一个类的协议(protocol)的实现(除非我在代码中添加一些注释).

我正在考虑这样命名协议(protocol)中的函数:

Protocol MyNetworkProtocol {
    func myNetworkProtocol_reportError(error: Int)   
}

这样在MyClass中,我可以很快知道它是某个类的协议(protocol)的实现。这是必要的吗?我误解了一些概念吗?

最佳答案

不要那样做。而是将协议(protocol)方法隔离到一个单独的扩展中。

class MyClass {
}

extension MyClass: MyNetworkProtocol {
    func reportError(error: Int) {
        // some code to handle it
    }
}

关于swift - 你如何命名 Swift 协议(protocol)中的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48016327/

相关文章:

xcode - 为什么我必须将库嵌入到应用程序二进制文件中才能正常工作?

eclipse - 如何在 Eclipse 中包含 Swift 支持

Swift 协议(protocol)和扩展,如果存在,我需要调用实例方法

swift - 如何在 'pure' Swift 中创建一个弱协议(protocol)引用(没有@objc)

swift - Swift 中的类内部协议(protocol)

ios - 在 Swift 中使用委托(delegate)模式重构 CNContactPicker UI 代码

arrays - Swift 4.1 中对类绑定(bind)协议(protocol)的弱引用的通用数组

xcode - 使用 TabBar 和 NavBar 在 App Delegate 中配置窗口

ios - 如何从Firebase节点获取 child ?

ios - 对成员 'count' 的模糊引用