"没有下标成员"错误(迁移到Swift 3)

Jos*_*nor 1 ios swift3

我目前正在将我的代码迁移到Swift 3,并且遇到了一个我无法弄清楚的错误.observeValue(forKeyPath函数已在Swift 3中更新,我的代码不再适用于此.错误状态"类型'[NSKeyValueChangeKey:Any]?'没有下标成员",它指向下标常量"更改".在Swift 3中的一些原因,它不会让我下标更改参数.如何修复此错误?

override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
    //Line below is generating error: Type '[NSKeyValueChangeKey: Any]?' has no subscript members
    let change = change["new"] as? Float
}
Run Code Online (Sandbox Code Playgroud)

dan*_*dan 6

change参数是可选的,因此您必须先将其解包,然后才能下标.您还应该使用枚举值作为下标而不是原始字符串:

let change = change?[.newKey] as? Float
Run Code Online (Sandbox Code Playgroud)