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/

10-12 04:21