我的目标是访问另一个班级sayName()
内的班级Klass
中包含的方法Manny
。
class Manny {
class Klass {
func sayName() {
print("Klass")
}
}
}
写Manny.Klass.sayName()
会返回错误,因为它需要括号内的一些代码:
在调用
中缺少参数#1的参数
但是,方法sayName()
没有任何参数。
我知道我可以使用点符号Manny
向类Manny.myMethod()
发送消息,但是如何在另一个类中访问类的方法?
答案 0 :(得分:4)
您的问题是您的函数sayName()
是实例函数,而不是类函数。因此,如果没有类Klasse
的实例,则无法调用该方法。
要么将函数的类型更改为类类型,要么先创建实例并在该实例上调用该函数:
class Manny {
class Klass {
class func sayName() {
print("Klass")
}
}
}
Manny.Klass.sayName()
或强>
class Manny {
class Klass {
func sayName() {
print("Klass")
}
}
}
let klasse = Manny.Klass()
klasse.sayName()
两者都正确打印
克拉斯
答案 1 :(得分:1)
当你在类上调用方法时,你必须通过添加关键字class
class Manny {
class Klass {
class func sayName() {
print("Klass")
}
}
}