【发布时间】:2019-04-03 07:44:32
【问题描述】:
在 Swift 书中,枚举示例运行良好
enum CompassPoint: String {
case north, south, east, west
}
var northCom = CompassPoint.north
print (northCom)
但是我想使用一个可失败的初始化器,所以做了一个例子
enum WeekDay: String {
case monday, tuesday, wednesday, thursday, friday
init?(rawValue: Int){
switch rawValue {
case 0 : self = .monday
case 1 : self = .tuesday
case 2 : self = .wednesday
case 3 : self = .thursday
case 4 : self = .friday
default : return nil
}
}
}
并得到一个错误,即 Weekday 不符合 RawRepresentable - 虽然我觉得应该由编译器综合,所以不明白为什么这不能编译。
我做了什么 创建了一个类似的工作示例(以查看问题所在),但我仍然想使用带有可失败初始化程序的枚举来遵守 RawRepresentable。我在 Swift 书籍、Stack Overflow 问题或更广泛的互联网上找不到这样的例子。
我提供的内容给出了上面的完整示例,其中包含错误以及我期望的行为的工作示例。
什么没有帮助通过链接或评论引用 Swift 书籍没有帮助,因为我从那里举了一个例子。我想在那个例子的基础上使用一个可失败的初始化程序。不使用枚举或可失败的初始化程序也无济于事。问题是关于使用带有枚举的可失败初始化程序,并符合 RawRepresentable。这不是家庭作业,但这些是我自己学习的问题的限制,我对结果很感兴趣。
问题如何使用一个可失败的初始化程序,以及非工作示例中的枚举?
【问题讨论】:
标签: swift