Есть также некоторые обходные пути, упомянутые в вышеупомянутом связанном потоке, например, с использованием вложенных классов:
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)
}
}