我使用结构的问题是试图获取和设置值。我试着把我的象牙储存成这样:
设原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)
}
}
}发布于 2016-04-13 16:24:48
这似乎基本上是正确的-不需要“放入”newCenter参数。但是,在计算y位置时,用size.width而不是size.height进行除法是不正确的。
使用foo.center = bar时,bar将是newCenter的值。
https://stackoverflow.com/questions/36604137
复制相似问题