例如:
public protocol Thing : class { var x : Int { get }}
我想隐藏我的实现细节,所以我做了一个内部类:
internal class ThingImpl : Thing { public private(set) var x : Int = 0}
并通过工厂方法销售新东西:
public func newThing() -> Thing { return ThingImpl()}
我无法理解的是为什么编译器警告我在ThingImpl中使var x公开并鼓励我将其声明为内部.
尽管有警告,一切都运行良好,如果我注意到警告并更改为内部私有(设置)var x:Int = 0,警告消失,事情仍然正常.
在我看来,将var公开是正确的事情,因为它正在实施的公共协议中是公开的.
我在这里错过了什么吗?谢谢.
以上是内存溢出为你收集整理的在swift中使用内部类实现公共协议全部内容,希望文章能够帮你解决在swift中使用内部类实现公共协议所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)