2016-04-13 7 views
0

Yapılarla yaptığım sorun değerleri alıp ayarlamaya çalışmaktır. Ben gibi benim ivars saklamak için deneyin:Bir değer almak ve ayarlamak için bir struct kullanma yolları?

let origin.X = 10, origin.y = 10

Ancak, alıcı ve ayarlayıcıları şekilde nasıl olarak karıştı. Bir menüm var, ancak newCenter parametresine ne eklemem gerekir?

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) 
     } 
    } 
} 

cevap

0

Bu, çoğunlukla doğru olarak görünüyorsa - hiçbir şey olmak newCenter parametresi "koymak" gerekir. Ancak, y konumunu hesaplarken size.height yerine size.width yerine yanlış olarak bölersiniz.

foo.center = bar'u kullandığınızda, bar, newCenter değeri olacaktır.