Swift 语言中如何使用私有属性? [复制]
Posted
技术标签:
【中文标题】Swift 语言中如何使用私有属性? [复制]【英文标题】:How are private properties used in the Swift language? [duplicate] 【发布时间】:2014-07-24 04:19:58 【问题描述】:在 swift 语言中似乎没有私有或公开的关键字。 所以有可能拥有私有财产吗?
顺便说一句,根据我目前的观察,Swift 与 Typescript 非常相似。
【问题讨论】:
【参考方案1】:更新:
从 Xcode 6 beta 4 开始,Swift 具有访问控制 - https://developer.apple.com/swift/blog/?id=5
Swift 还没有访问修饰符。但是there are plans to add them in the future
上面链接的线程中还提到了一些解决方法,比如使用嵌套类:
import Foundation
class KSPoint
/*!
* Inner class to hide the helper functions from codesense.
*/
class _KSPointInner
class func distance(point p1 : KSPoint, toPoint p2 : KSPoint) -> Double
return sqrt(pow(Double(p2.x - p1.x), 2) + pow(Double(p2.y - p1.y), 2))
var x : Int
var y : Int
init(x : Int = 0, y : Int = 0)
self.x = x
self.y = y
func distance(point : KSPoint, toPoint : KSPoint) -> Double
return _KSPointInner.distance(point: point, toPoint: toPoint)
【讨论】:
谁会因为不愉快而对真相投反对票? 正如您所提到的,嵌套类只是解决方法。 IMO,最好使用协议和工厂,或者为私有和受保护成员添加前缀并等待承诺的访问修饰符。 我投了反对票,因为起初所有的答案都是“Swift 还没有访问修饰符。但有计划在未来添加它们”,没有证据或解释细节。 @NSAddict 像 javascript 一样,可以使用闭包作为实现隐私的可靠方法。 @JohnRiselvato 没有完整的代码示例,但是当您投反对票时,已经有指向 Apple 讨论论坛的链接,并且在此表单上,Apple 员工字面上承诺会有 访问修饰符。这怎么不是证据?以上是关于Swift 语言中如何使用私有属性? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何在javascript中获取类的私有属性名称? [复制]
“计算属性必须具有显式类型”错误:如何在 Swift 2.x 中列出文件? [复制]
如何在 Swift 中更改 UILabel 文本某些部分的字体属性? [复制]