enum Seat: String{
case middle
case aisle
case window
case undefined
}
let s : Seat = Seat(rawValue: Seat.middle)
这样做让我
错误:与参数类型“Seat”相同的初始值设定项调用无效
这似乎是个简单的错误。我在网上搜索,但什么也没找到。
最佳答案
这个错误很明显。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
来创建此错误。但是由于更改是在一个不同于枚举定义文件的文件上进行的…我感到困惑。关于swift - 无效的初始化程序调用,其类型与参数“XXXX”相同,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50241435/