Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

iOS Object-Oriented Swift Inheritance Overriding Methods

Selina Scherrer
Selina Scherrer
1,685 Points

How can I use super in this exercise?

I can't figure out what's wrong with my code... Am I using super correctly?

I know this (see below) would work as well... but is it also possible to use super ? If yes, how and what's wrong with my code?

class RoundButton: Button {
  var cornerRadius: Double = 5.0

  override func incrementBy(points: Double){
  width += 7.0
  height += 7.0
  }
}

xxx Selina

var height: Double

init(width:Double, height:Double){ self.width = width self.height = height }

func incrementBy(points: Double){ width += points height += points } }

class RoundButton: Button { var cornerRadius: Double = 5.0

func incrementBy (_points: Double = 7.0 ){ super.incrementBy(points) //can I use super here? what am I doing wrong? }

}

1 Answer

Jhoan Arango
Jhoan Arango
14,575 Points

Hello Selina:

You did it, that was good. You just missed one thing, but even me would have missed that, I had to re-do the challenge to be able to figure it out.

In your override function, instead of using the increment syntax += use the assign instead. =, that should fix it.

Good Job.

If you need an explanation please let me know

class RoundButton: Button {
  var cornerRadius: Double = 5.0

  override func incrementBy(points: Double){
  width = 7.0 // Change your increment to assign syntax
  height = 7.0
  }
}