下标麻烦

时间:2016-05-17 02:49:01

标签: xcode swift

我有一行代码,直到2个月前才开始工作。现在我收到警告"模糊地使用下标"。

以下是我遇到问题的代码行。最近Swift有更新吗?

if let data = response.result.value {

   let precinctNumberFromAPI = Int(data.valueForKeyPath("objects.metadata.Precinct")![0] as! String)
....

}

1 个答案:

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