参见英文答案 >
Does Swift have access modifiers?1
如何在Swift中创建私有函数?
如何在Swift中创建私有函数?
这是一个例子:
import UIKit
class AnotherClass {
var someVar = 1
let someConst = 2
func somePrivateFunc() -> Bool {
return true
}
func someFunc() -> (Int -> Bool) {
var someInnerFuncVar = { (num: Int)->Bool in
return true
}
return someInnerFuncVar
}
init() {
var vc = ViewController()
}
}
但是,如果这是唯一的做法….
目前swift没有可见性修饰符。
在开发者论坛上,语言作者表示,它们位于其优先级列表的首位。
引用greg parker从here:
We don’t usually promise anything for the future,but in this case we are making an exception. Swift will have access control mechanisms.
在同一个论坛中,他们建议您以这种方式使用嵌套类,但这只是为了防止代码完成来捕捉内部方法。在任何人都可以实例化嵌套类并访问这些方法的意义上,他们并不是私人的。
import Foundation
class KSPoint {
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
func distance(point : KSPoint,toPoint : KSPoint) -> Double {
return _KSPointInner.distance(point: point,toPoint: toPoint)
}
}