2016-04-13 20 views
0

私が構造体に持っている問題は、値を取得して設定しようとしています。 私のような私のアイバーズを格納しよう:構造体を使用して値を取得および設定する方法はありますか?

せorigin.x = 10、origin.y = 10

はしかし、私はゲッターとセッターを利用する方法についての混乱しています。私は起源を持っていますが、私は何を入れなければなりませんnewCenterパラメータ?

struct Point { 
var x = 0.0, y = 0.0 

} 

struct Rect { 
    var origin = Point(x: 10, y: 10) 
    var size = Size() 
    var center: Point { 
     get { 
      let centerX = origin.x + (size.width/2) 
      let centerY = origin.y + (size.height/2) 
      return Point(x: centerX, y: centerY) 
     } 
     set(newCenter) { 
      origin.x = newCenter.x - (size.width/2) 
      origin.y = newCenter.y - (size.height/2) 
     } 
    } 
} 

答えて

0

これはほぼ正しいと思われます。newCenterパラメータを「入れる」必要はありません。ただし、y位置を計算するとき、size.heightではなく、size.widthで間違って除算しています。

foo.center = barを使用すると、barnewCenterの値になります。

関連する問題