试过这个并且它给了我一个错误:
class BaseClass {
class var testProperty: String {
return "Original"
}
class func testingFunc()->Self {
return self // error - Can not convert return expression of type "Self.Type" to return the type "Self"
}
}
有什么想法? 感谢
答案 0 :(得分:8)
在类/静态函数中,self
引用类类型。没有实例可以参考,所以你得到的是类型,它是当前的范围。它在实例方法中并不相同,其中self指的是<instance>.self
class Foo {
class func classMethod() -> Foo.Type {
return self // means Foo.self
}
func instanceMethod() -> Foo {
return self // means <instance of Foo>.self
}
}
答案 1 :(得分:0)
您的返回类型应该是您所在的类类型。在这种情况下,它是BaseClass
。
此外,您正在定义一个基本上是静态函数的类函数。它不会返回实例。我真的不明白你想要完成什么。
答案 2 :(得分:-1)
如果要获取有关实例的信息,请使用实例函数。在定义函数时省略关键字class
。
class BaseClass {
func instanceInfo() {
// self here refers to the instance
}
}