这是一个展示警告的简单示例:
func cvt(value:AnyObject?) -> AnyObject? {
let test:AnyObject? = nil
switch value {
case var (v) where v is String:
test = v
default:
test = value
}
return test
}
cvt("xyzzy")
case
行生成此警告:
Constant 'v' inferred to have type 'AnyObject?', which may be unexpected
在包含更多cases
的更大的上下文中,代码看起来似乎只有更多警告才能正常工作。
问题:如何消除警告。
答案 0 :(得分:1)
如最新Swift Blog post所述,您需要使用 as
向下投注操作符:
switch value {
case let value as String:
// value is a string
case let value as Double:
// value is a double
}