订阅错误,不能下标类型的值

时间:2016-10-01 20:18:17

标签: swift

我正在将我的项目从Swift 2转换为Swift 3,我遇到了一个奇怪的错误:

  

无法下标类型'inout [[String:AnyObject]]'的值(又名   'inout Array>')

“inout”在这个错误中甚至意味着什么?

这是代码部分:

var productsValue = [[String:AnyObject]]()
cell.snusProductImageView.kf.setImage(with: NSURL(string: productsValue[indexPath.row]["productUrl"] as! String)!)

造成这种情况的原因是什么?我完全不理解错误,因为它是如此的董事会。你能帮助我吗?

我尝试使用guardlet,但由于某种原因无效。

我了解productsValue是[String:AnyObject]。这意味着["productUrl"]AnyObject,我无法指定AnyObject,预计会有[String:AnyObject]。但为什么它在Swift 2中起作用?

1 个答案:

答案 0 :(得分:0)

我解决了这样的错误:

var productsValue = [[String:AnyObject]]()
if productsValue[indexPath.row]["productUrl"] != nil {
   var productValue = self.productsValue[indexPath.row]["productUrl"] as! String
   cell.snusProductImageView.kf.setImage(with: NSURL(string: productValue) as! Resource?)
}

我不知道这是否解决了这个问题,为什么它会使错误无声,但是是的。