Swift 具有相同类型的初始化器调用无效';XXXX和x27;作为参数

Swift 具有相同类型的初始化器调用无效';XXXX和x27;作为参数,swift,enums,Swift,Enums,这样做会使我感到不安 错误:使用与参数相同类型“Seat”的初始化器调用无效 这似乎是一个简单的错误。我在网上搜索,但什么也没找到。错误很明显 rawValue参数需要一个字符串。但你给它的是枚举类型本身 您应该: enum Seat: String{ case middle case aisle case window case undefined } let s : Seat = Seat(rawValue: Seat.middle) 或仅出于演示目的:

这样做会使我感到不安

错误:使用与参数相同类型“Seat”的初始化器调用无效


这似乎是一个简单的错误。我在网上搜索,但什么也没找到。

错误很明显

rawValue
参数需要一个
字符串。但你给它的是枚举类型本身

您应该:

enum Seat: String{
    case middle
    case aisle
    case window
    case undefined
}

let s : Seat = Seat(rawValue: Seat.middle)
或仅出于演示目的:

let s: Seat = .middle
let s = Seat(rawValue: "middle") ?? .undefined
let s = Seat(rawValue: "middle")! // Perhaps this is better, per Alexander's comment

我通过将我的
s
属性的类型从
String
更改为
Seat
创建了此错误。但由于更改是在与定义枚举的文件不同的文件中进行的…我感到困惑

你在回答这个问题时向谁讲话?阿拉伯文,萨拉姆:D!给社区。见雅拉·塔玛姆·亚哈比比
let s:Seat=.middle
我认为强制展开
Seat(rawValue:Seat.middle.rawValue)
比默认值
.undefined
更好。如果初始值设定项返回
nil
,则Swift已损坏,您可能应该知道它。
let s = Seat(rawValue: Seat.middle.rawValue) ?? .undefined