我收到了错误
类型'String'不符合协议'intervalType'
我只在playgroundfile中尝试过此代码,但它也不起作用。
var header = [String:AnyObject]()
header["NachrichtenTyp"] = "2001"
switch header["NachrichtenTyp"] {
case "2001":
println("2001 Import new file")
default:
break
}
我找到了这个帖子:Strings in Switch Statements: 'String' does not conform to protocol 'IntervalType'
但是这个例子在我的操场上也不起作用(Xcode 6.2)
答案 0 :(得分:3)
您可以通过以下方式解决此问题:
case "2001" as String:
println("2001 Import new file")
答案 1 :(得分:3)
如果你不想在很多不同的值的情况下多次输入as String
,你可以嵌套两个switch
语句,如下所示:
var header: [String:AnyObject] = [:]
header["NachrichtenTyp"] = "2001"
for key in header.keys {
switch header[key] {
case let str as String:
switch str {
case "2001":
println("2001 Import new file")
default:
break
}
case let num as Int:
// ...
break
default:
break
}
}
答案 2 :(得分:2)
像这样修改:
var header: [String:AnyObject] = [:]
header["NachrichtenTyp"] = "2001" ;
if let header = header["NachrichtenTyp"] as? NSString
{
switch header
{
case "2001":
println("2001 Import new file")
break
default:
break
}
}
答案 3 :(得分:2)
你也可以施展你的" NachrichtenTyp"。所以你不需要"作为字符串"每个案例陈述:
var header: [String:String] = [:]
header["NachrichtenTyp"] = "2001"
let ntype:String = header["NachrichtenTyp"]! as String
switch ntype {
case "2001":
println("2001 Import new file")
default:
break
}