我有一行代码,直到2个月前才开始工作。现在我收到警告"模糊地使用下标"。
以下是我遇到问题的代码行。最近Swift有更新吗?
if let data = response.result.value {
let precinctNumberFromAPI = Int(data.valueForKeyPath("objects.metadata.Precinct")![0] as! String)
....
}
答案 0 :(得分:3)
使用Swift 2.2,编译器对类型要严格得多,如果存在歧义,很多以前推断的类型都不会被推断出来。
在您的情况下,只需通过安全展开和强制转换,帮助编译器了解您的对象是什么类型。
示例:
if let data = response.result.value,
array = data.valueForKeyPath("objects.metadata.Precinct") as? [String],
precinctNumberFromAPI = array.first {
// do stuff with precinctNumberFromAPI
}