본문 바로가기
Smart Device/Swift

Swift extension #2 Initializers의 확장

by 언덕너머에 2015. 6. 25.

Initializers의 확장



  1. struct Size {
  2. var width = 0.0, height = 0.0
  3. }
  4. struct Point {
  5. var x = 0.0, y = 0.0
  6. }
  7. struct Rect {
  8. var origin = Point()
  9. var size = Size()
  10. }

  1. let defaultRect = Rect()
  2. let memberwiseRect = Rect(origin: Point(x: 2.0, y: 2.0),
  3. size: Size(width: 5.0, height: 5.0))


  1. extension Rect {
  2. init(center: Point, size: Size) {
  3. let originX = center.x - (size.width / 2)
  4. let originY = center.y - (size.height / 2)
  5. self.init(origin: Point(x: originX, y: originY), size: size)
  6. }
  7. }

  1. let centerRect = Rect(center: Point(x: 4.0, y: 4.0),
  2. size: Size(width: 3.0, height: 3.0))
  3. // centerRect's origin is (2.5, 2.5) and its size is (3.0, 3.0)