你如何命名Swift协议中的函数?

问题描述 投票:1回答:2

当我像这样在Swift中声明一个协议时,比如网络模块:

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

你如何命名协议中的函数?你为它添加了前缀吗?

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

class MyClass: MyNetworkProtocol {

    // some code for MyClass

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

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

我想在这样的协议中命名函数:

Protocol MyNetworkProtocol {
    func myNetworkProtocol_reportError(error: Int)   
}

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

swift swift-protocols
2个回答
2
投票

不要那样做。而是将协议方法分离为单独的扩展。

class MyClass {
}

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

-1
投票

在协议功能中,按协议名称启动,带有协议类和附加参数

Protocol MyNetworkProtocol {

    func myNetworkProtocol(_ myNetwork: MyNetworkProtocol, _reportErrot: Int)

    }
}

像这样的功能将有助于轻松调试

© www.soinside.com 2019 - 2024. All rights reserved.