首页 > 解决方案 > 使用泛型访问结构内的枚举类型

问题描述

我有一个这样的泛型结构:

struct A<Content: View>: View {

    enum MyEnum {
    case abc
    case def
    }
    // ...
}

现在,当我尝试定义此枚举的变量时,如下所示:

class B: ObservableObject {

@Published var variable: A.MyEnum = .abc

}

我收到一个错误:

Generic parameter 'Content' could not be inferred

我错过了什么?

标签: swiftgenerics

解决方案


由于枚举位于具有泛型的结构内部,因此必须先键入该结构,然后才能访问其内容。

let x = A<Text>.MyEnum.abc

我会让枚举成为顶级而不是 A 的孩子。


推荐阅读