2016-10-13 1 views
0

オブジェクトの値を取得して別の値を返す必要があるクラス内に関数があります。 CLLocation距離でリンゴのようなことをしたい。電話できる場所Swiftクラスオブジェクトは、関数を呼び出すときにその値を送信します。

point1.distance(point2) 

ここで、point1とpoint2の両方の値が送信されます。

私は関数を作成し、このような関数のパラメータを送ることができ知っている:

getDistance(point1: Location, point2: Location) 

は、機能とどのようにそれが呼ばれて、よりエレガントなスタイルを使用するには、どのような方法は方法のように、ありですAppleはその機能を使います。

+2

を、何をそれは内部的に擬似コードのように見えるかもしれません: 'point1.distance(point2){getDistance(point1:self、point2:point2)}'。これはあなたにヒントを与えますか? – Larme

+1

したがって、[メソッド](https://developer.apple.com/library/prerelease/content/documentation/Swift/Conceptual/Swift_Programming_Language/Methods.html#//apple_ref/doc/uid/TP40014097-CH15)を作成したいとします。 -ID234)? – user28434

+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 
関連する問題