Swift类对象在调用函数时发送其值

时间:2016-10-13 12:06:30

标签: ios swift swift3

我在类中有一个函数需要获取对象的值然后返回不同的值。我想做一些像苹果做CLLocation距离的事情。你可以在哪里打电话

    point1.distance(point2)

其中发送point1和point2的值。

我知道我可以创建一个函数并在函数中发送参数:

getDistance(point1: Location, point2: Location)

是否有任何方法可以使用更优雅的功能以及如何调用它,就像Apple使用它们的功能一样。

1 个答案:

答案 0 :(得分:1)

你可以这样做:

class Location {

private var _position: Double!

var position: Double {
    return _position
}

init(position: Double) {

    self._position = position
}

func distance (reference: Location) -> Double {
    let point1 = self.position //or whatever leads to your value
    let point2 = reference.position
    //do what ever you have to do with both points e.g.
    let result = point1 - point2
    return result
}

}

let point1 = Location(position: 50.0)

let point2 = Location(position: 32.0)

现在你可以做你想要的事情:

point1.distance(reference: point2)

// returns 18