私有swift协议是否可能?

时间:2016-07-30 11:51:23

标签: ios swift syntax

在阅读docs之后,我发现了

  

在Swift中,与Objective-C一样,协议一致性是全局的 - 类型不可能在同一程序中以两种不同的方式符合协议。

那么私有前缀的目的是什么

private protocol PartyFormViewControllerDelegate: class {
    func partyFormViewController(controller: PartyFormViewController, cancelButtonPressed button: UIBarButtonItem)
}

class PartyFormViewController: GenericViewController {
    //...
}

1 个答案:

答案 0 :(得分:1)

在Swift中private表示:在当前源文件中可见。

私有Type可以符合私有协议,请看:

private protocol Animal { }
private class Dog: Animal { }

class Zoo {
    private var animals = [Animal]()
    var count : Int { return animals.count }
}

此处,动物和狗只在当前文件中可见。但是,Zoo使用它们具有内部可见性,并将动物的数量暴露给整个模块。