如何从Swift中的另一个类访问枚举?

Dou*_*ith 17 swift

说我有以下示例:

class ClassOne {
    enum Color {
        case Red
        case Blue
    }

    func giveColor() -> Color {
        return .Red
    }
}

class ClassTwo {
    let classOne = ClassOne()
    var color: Color = classOne.giveColor()
}
Run Code Online (Sandbox Code Playgroud)

编译器抱怨说,它不知道什么ColorClassTwo.我怎么能最好地处理这个?

Nat*_*ook 29

您的Color枚举是嵌套类型 - 您将以其身份访问它ClassOne.Color.而且,您不能在声明中指定另一个属性.保持未分配状态并在以下位置执行init():

class ClassOne {
    enum Color {
        case Red
        case Blue
    }

    func giveColor() -> Color {
        return .Red
    }
}

class ClassTwo {
    let classOne = ClassOne()
    var color: ClassOne.Color

    init() {
        self.color = self.classOne.giveColor()
    }
}
Run Code Online (Sandbox Code Playgroud)