Swift 使用结构获取和设置值的方法?

Swift 使用结构获取和设置值的方法?,swift,struct,Swift,Struct,我在structs中遇到的问题是试图获取和设置值。 我尝试将我的IVAR存储为: 设原点.x=10,原点.y=10 然而,我对如何使用getter和setter感到困惑。我有一个原点,但是我应该在我的newCenter参数中输入什么 struct Point { var x = 0.0, y = 0.0 } struct Rect { var origin = Point(x: 10, y: 10) var size = Size() var center: P

我在structs中遇到的问题是试图获取和设置值。 我尝试将我的IVAR存储为:

设原点.x=10,原点.y=10

然而,我对如何使用getter和setter感到困惑。我有一个原点,但是我应该在我的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)
         }
     }
}

这似乎基本正确-无需将任何内容“放入”
newCenter
参数。但是,在计算y位置时,您被错误地除以了
size.width
,而不是
size.height

使用
foo.center=bar
时,
bar
将是
newCenter
的值