首页 > 解决方案 > 关联的枚举类型实现 CaseItratable

问题描述

我有两个枚举和一个关联的枚举。我需要一次从枚举 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 中的所有案例

标签: iosswiftenums

解决方案


1.符合enum A和协议enum B_CaseIterable

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

enum B: CaseIterable {
    case d, e, f
}

2.获取所有使用enum A的案例。enum BallCases

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

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

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

推荐阅读