XXXX!.Type没有memeber YYYY

时间:2015-03-27 05:49:44

标签: swift optional

class SomeClass {
    class var category: Int {
        return 1class SomeClass {
    class var category: Int {
        return 1
    }
}

class AnotherClass {
    var someClass: SomeClass!

    init() {
        someClass = SomeClass()
    }
}

var a = AnotherClass()
println("\(a.someClass.dynamicType.category)")   // error: SomeClass!.Type does not have a member named category
println("\(SomeClass.category)")  // print 1

当然我可以使用SomeClass.category, 这里只是一个展示问题的例子。 当我不知道a.someClass的确切类型时,例如继承,我该怎么办呢?

1 个答案:

答案 0 :(得分:2)

你可以:

println("\(a.someClass!.dynamicType.category)")

与普通会员访问不同,.dynamicType不会隐式展开ImplicitlyUnwrappedOptional

在您的情况下,a.someClassImplicitlyUnwrappedOptional<SomeClass>ImplicitlyUnwrappedOptional<T>没有.category静态成员。

因此,您必须使用a.someClass!

手动打开它