【发布时间】:2017-07-18 19:53:50
【问题描述】:
抱歉,标题很粗略,但我正在 teamtreehouse.com 上学习 Swift 课程,并且我做了一个“代码挑战”来回顾面向对象的 Swift 课程。无论如何,为我提供了几个类,我的目标是继承 Machine 类并覆盖该方法以实际做某事,我做到了。我通过了挑战,但很好奇我是否可以在传入参数后实际打印此函数的最终结果。
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 func move(_ direction: String) {
switch direction {
case "Up": location.y += 1
case "Down": location.y -= 1
case "Left": location.x -= 1
case "Right": location.x += 1
default: break
}
}
}
let aRobot = Robot()
aRobot.move("Up")
print(aRobot.location)
所以,最后 3 行是我实际管理的尝试,但在控制台中,打印的是“Point”行,而不是正在执行的方法的实际结果。如果可能的话,我希望以坐标的形式打印结果。抱歉可能有错误的代码,我只是一个初学者。提前致谢!
【问题讨论】:
-
好吧,我确实设法找到了一种方法来打印结果,方法是删除整个 Point 类并将存储的属性位置类型更改为
(x: Int, y: Int),然后对init 方法,但我仍然很好奇在仍然使用 Point 类型的同时是否有可能
标签: objective-c swift xcode class methods