我到目前为止所发现的是公共获取和私人集合的场景,如下所示.
private(set) var distanceTravelled: Double
Run Code Online (Sandbox Code Playgroud)
我反过来想要它.当然以下是行不通的.
private(get) public var distanceTravelled: Double
Run Code Online (Sandbox Code Playgroud)
gio*_*shc 15
如果你想要一个公共setter但是这个var的私有getter你可以将它声明为private:
private var distanceTravelled: Double
Run Code Online (Sandbox Code Playgroud)
并创建一个公共方法来设置此变量:
public func setDistanceTravelled(distanceTravelled: Double) {
self.distanceTravelled = distanceTravelled
}
Run Code Online (Sandbox Code Playgroud)
这是可能的,从 Xcode 10.2 / Swift 5 开始。
您将计算属性与@available属性组合在一起,如下所示:
public var distanceTravelled: Double {
@available(*, unavailable)
get { internalDistanceTravelled }
set { internalDistanceTravelled = newValue }
}
private var internalDistanceTravelled: Double
Run Code Online (Sandbox Code Playgroud)
请注意,如果您使distanceTravelledObjective-C 可见,unavailable则不会扩展到那里。
| 归档时间: |
|
| 查看次数: |
8360 次 |
| 最近记录: |