【发布时间】:2020-12-31 15:51:47
【问题描述】:
我有一个包含 2 个案例的 Enum,每个案例都以 String 和 Int 作为属性:
public enum TestEnum {
case case1(String, Int? = nil)
case case2(String, Int? = nil)
}
我创建了一个值为 case1 和这两个属性的枚举:
let e = TestEnum.case1("abc", 123)
我的问题是如何获得
我试过了
let a = e.case1.0 // expect to get 'abc' back
let b = e.case1.1 // expect to get '123' back
print ("\(a)")
print ("\(b)")
但是我得到编译错误'Enum case 'case1' cannot be used as an instance member'
【问题讨论】:
-
解决方案已经写在下面了。我想说的是枚举的关联值不是元组。因此你不能像元组一样访问。在您的情况下,
e已经等于.case1及其关联值。e.case1会报错,因为e本身就是 case1。