迅速。在内部协议中声明私有函数

时间:2017-03-03 18:11:59

标签: swift protocols

我怎样才能实现这样的目标(不编译):

internal protocol InternalPrivateMix {
    private func doPrivately()
    internal func doInternaly()
}

基本上我想做一个承诺,确认类私下实现某些功能。这更适用于自我文档。我显然可以在我的类中实现这些函数,而无需正式遵循协议和编写文档来描述每个类应该实现此功能。虽然如果我可以更正式地向其他开发者传达我的意图,那将会很好。

编辑:我试图在一个文件中实现两个协议,一个私有,一个内部正如@creeperspeak建议的那样。但是我无法在其他文件中使用私有协议,所以它不起作用。

2 个答案:

答案 0 :(得分:1)

From Apple's docs看起来实现你要做的事情的唯一方法是实现2个协议 - 一个内部协议,一个私有协议,如Apple声明的那样#34;你不能将协议要求设置为不同的访问级别,而不是它支持的协议。"

答案 1 :(得分:0)

你可以这样做:

protocol P {
    func int()
}

extension P {
    func int() {
        print("int()")
        priv()
    }
    private func priv() {
        print("priv()")
    }
}

哪个可能符合您的目的 - 我使用它。