Swift   发布时间:2022-04-29  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在swift中使用内部类实现公共协议大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
所以我正在编写一个 Swift框架,我想通过协议公开公开一些对象.

例如:

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公开并鼓励我将其声明为内部.

在swift中使用内部类实现公共协议

尽管有警告,一切都运行良好,如果我注意到警告并更改为内部私有(设置)var x:Int = 0,警告消失,事情仍然正常.

在我看来,将var公开是正确的事情,因为它正在实施的公共协议中是公开的.
在这里错过了什么吗?谢谢.

解决方法

ThingImpl是一个内部类.因此它将覆盖public x变量的可访问性,从而有效地使该变量成为内部变量.因此,将此变量的可访问性设置为public是多余的.

大佬总结

以上是大佬教程为你收集整理的在swift中使用内部类实现公共协议全部内容,希望文章能够帮你解决在swift中使用内部类实现公共协议所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。