我想我会遇到一些非常简单的语法,但我找不到如何解决它。
首先是设置,让我介绍一个包含多个关联值的精彩枚举
enum Entity {
case City(data: CityData, position: NSRange)
case Date(date: NSDate)
case Service
}
然后我想检查一些字典的字段是否是一个城市,如果是,请处理其数据和位置......我唯一可以管理的方法是 via 一个switch
!!!
if let city = result["ABC"] {
switch city {
case .City(data:let data, position:let position): // Do something with data and position
default: // Do nothing
}
}
我想知道if case
语法是否有任何帮助......
但是我找不到它(可能是疲倦,我希望......)
我正在寻找类似的东西:
if case result["ABC"] == .City(data:let data, position:let position) {
// Do something with data and position
}
所以我确信这很明显,但我错过了......所以,如果你能提供帮助,那就太棒了。
提前致谢。
答案 0 :(得分:10)
Swift词典返回可选值。因此,使用switch
,您应该:
switch result["ABC"] {
case let .City(data, position)?:
// Do something with data and position
default:
break
}
使用if
模式匹配:
if case let .City(data, position)? = results["ABC"] {
// Do something with data and position
}