案件陈述警告

时间:2014-09-04 18:57:47

标签: swift warnings

这是一个展示警告的简单示例:

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的更大的上下文中,代码看起来似乎只有更多警告才能正常工作。

问题:如何消除警告。

1 个答案:

答案 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
}