我有一个带有嵌套类的类。我试图从嵌套类中访问外部类的变量:
class Thing{
var name : String?
var t = Thong()
class Thong{
func printMe(){
print(name) // error: instance member 'name' cannot be used on type 'Thing'
}
}
}
然而,这给了我以下错误:
实例成员'name'不能用于'Thing'类型
有没有一种优雅的方法来规避这个?我希望嵌套类能够捕获词法范围,就像闭包一样。
由于
答案 0 :(得分:2)
你可以做这样的事情
class Thing{
var name : String = "hello world"
var t = Thong()
init() {
t.thing = self
t.printMe()
}
class Thong{
weak var thing: Thing!
func printMe(){
print(thing.name)
}
}
}
答案 1 :(得分:0)
尝试传递变量,而不要尝试直接使用它。
class Thing{
var name : String?
var t = Thong()
class Thong{
func printMe(name: String){
print(name)
}
}
}