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 trialN David Ezeugwu
1,388 PointsI am stuck in the code challenge of the URL https://teamtreehouse.com/library/build-a-simple-iphone-app-with-swift-20/g
I am stuck in the code challenge of the URL https://teamtreehouse.com/library/build-a-simple-iphone-app-with-swift-20/g
My code is as presented below. Could someone please help?
class Point { var x: Int var y: Int
init(x: Int, y: Int){
self.x = x
self.y = y
}
}
class Machine { var location: Point
init() {
self.location = Point(x: 0, y: 0)
}
func move(direction: String) {
print("Do nothing! I'm a machine!")
}
}
// Enter your code below class Robot: Machine{
override init() { super.init() self.location = Point(x: 10, y: 10) }
override func move(direction: String){
switch direction{
case "Up": self.location.y = self.location.y++
case "Down": self.location.y++
case "Left": self.location.x--
case "Right": self.location.x++
default: break
}
}
}
3 Answers
Florin Veja
6,912 PointsDavid,
Try not overwriting init.
If you still have trouble, try copying your code into an XCode playground and see what errors come up.
For the complete answer, check this post: https://teamtreehouse.com/community/moving-method
Florin
N David Ezeugwu
1,388 PointsThanks Florin. It did work but why was I not supposed to override the init method?
Florin Veja
6,912 PointsDavid,
The challenge did not specify that the location property needed to be different in the Robot class than in the parent class. When these challenges run on the teamtreehouse.com servers, they expect the location property not to be changed from what is defined in the parent class.
If you do not change the value of the location property in the parent class, and you shouldn't in the challenge, and you do not define any properties in the Robot class, there is no need to override the init method. It would be redundant as all the properties and methods defined in the parent class are available to the child class
Let me know if that needs more explanation.
Florin