【发布时间】:2015-12-28 20:44:46
【问题描述】:
我在如下文件中定义了一个私有协议
private protocol testProtocol {
func testFunc1()
func testFunc2()
}
一个公共类符合上述协议如下
public class testClass : testProtocol {
func testFunc1() {}
func testFunc2() {}
}
根据苹果文档,公共类的成员默认获得内部访问控制,除非它被显式设置为不同的访问控制修饰符。
文档还说,类型对具有较低访问控制的协议的一致性将使该类型对协议访问控制的实现与协议的实现相同。在这种情况下,由于类型的访问控制是公共的,而协议的访问控制是私有的,因此 testfunc1 和 testfunc2 方法应该获得私有的访问控制。
当类在不同的源文件中实例化并且方法如下访问时,编译器不会显示不期望的错误,因为根据指南,方法应该是私有的
var test: testClass = testClass()
test.testFunc1()
这是预期的行为吗?我错过了什么吗?
【问题讨论】:
-
你找到解决办法了吗?
标签: ios protocols swift2 access-control