Swift 具有相同类型的初始化器调用无效';XXXX和x27;作为参数
这样做会使我感到不安 错误:使用与参数相同类型“Seat”的初始化器调用无效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) 或仅出于演示目的:
这似乎是一个简单的错误。我在网上搜索,但什么也没找到。错误很明显
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