嵌套的typealias隐藏了外部类型声明

时间:2016-01-20 16:00:46

标签: swift types nested

鉴于

class A {
    ...
}

class B {
    typealias A = Int
    ...
}

如何在B类主体内声明A类的实例变量?

1 个答案:

答案 0 :(得分:1)

typealias A是"阴影"另一个类A

一种解决方案是在阴影类型前面加上模块名称,告诉编译器它与typealias类型不同。

例如,如果您的模块名为" MyApp",请执行:

class A {
    let test = "test"
}

class B {
    typealias A = Int
    let instance = MyApp.A()
}

let b = B()
print(b.instance.test)