enum Seat: String{
case middle
case aisle
case window
case undefined
}
let s : Seat = Seat(rawValue: Seat.middle)
这样做给了我
错误:与参数类型相同的初始值设定项调用无效
这似乎是一个简单的错误。我在网上搜索,但什么也没找到。
错误非常明显。
rawValue
参数需要String
。但是你给它枚举类型本身。
您应该执行以下操作之一:
let s: Seat = .middle
let s = Seat(rawValue: "middle") ?? .undefined
let s = Seat(rawValue: "middle")! // Perhaps this is better, per Alexander's comment
或仅用于演示目的:
let s = Seat(rawValue: Seat.middle.rawValue) ?? .undefined
我通过将s
属性的类型从String
更改为Seat
来创建此错误。但是由于更改是在与定义枚举的文件不同的文件中进行的......我一头雾水。