Ios 关联的枚举类型实现CaseTatable

Ios 关联的枚举类型实现CaseTatable,ios,swift,enums,Ios,Swift,Enums,我有两个枚举和一个关联的枚举。我需要立即从枚举A和枚举B获取所有可能的案例 enum A { case a case b case c } enum B { case d case e case f } enum C { case first(A) case second(B) } extension C: CaseItratable { //How to implement? } 需要枚举C中的allCases方法,该方

我有两个枚举和一个关联的枚举。我需要立即从枚举A和枚举B获取所有可能的案例

enum A {
    case a
    case b
    case c
}

enum B {
    case d
    case e
    case f
}

enum C {
    case first(A)
    case second(B)
}

extension C: CaseItratable {
 //How to implement?
}

需要枚举C中的allCases方法,该方法返回枚举a中的所有案例和枚举B中的所有案例

1。符合
枚举a
枚举B
CaseIterable
协议

enum A: CaseIterable {
    case a, b, c
}

enum B: CaseIterable {
    case d, e, f
}
2.使用
所有案例获取
枚举A
枚举B
的所有案例

enum C {
    case first(A)
    case second(B)

    var casesOfA: [A] {
        return A.allCases //here...
    }

    var casesOfB: [B] {
        return B.allCases //here...
    }
}

如果
A
B
也是
CaseIterable
的话,它会更有帮助,那么您可以在
C
中实现
CaseIterable
,如下所示:

extension A: CaseIterable {}
extension B: CaseIterable {}

extension C: CaseIterable {

    static var allCases: [C] {
        return A.allCases.map(C.first) + B.allCases.map(C.second)
    }
}

你的问题有点不清楚。您只想在枚举C中的一个方法中获取所有A和B事例?是的,我想在枚举C中获取所有可能的事例您不需要自动推断的类型别名。@Saranjith您使用的是哪个版本的Swift?它在Swift 5.1上运行良好。@Saranjith你做了什么?