Swift编译器错误:键入' [AnyHashable:Any]?'没有下标成员

时间:2017-12-06 07:52:08

标签: swift xcode moltin

我目前正在Swift 4中制作电子商务应用,并将数据与Moltin相关联。我这样做是为了学校,所以我对此很陌生。我也关注CodeWithChris的教程,但这已经过时了,我的布局有点不同。我跟踪了一切,但我收到了这个错误:

  

键入' [AnyHashable:Any]?'没有下标成员

我不明白为什么。

self.objects = responseDictionary["result"] as? [AnyObject]

我尝试将as?更改为as!,但仍然无效。

这是我的完整代码;

import UIKit
import Moltin

class TableViewController: UITableViewController {
var objects = [AnyObject]()

override func viewDidLoad() {
   super.viewDidLoad()
   Moltin.sharedInstance().setPublicID('***my store ID***')

    Moltin.sharedInstance().product.listing(withParameters: nil, success: { (responseDictionary) in
        self.objects = responseDictionary["result"] as? [AnyObject]

        self.tableView.reloadData()
    }) { (responseDictionary, error) in
        print ("Something went wrong")
    }
}

1 个答案:

答案 0 :(得分:1)

responseDictionary似乎是一个可选项,需要检查是否存在:

Moltin.sharedInstance().product.listing(withParameters: nil, success: { (response) in
    guard let responseDictionary = response as? [AnyHashable : Any] else {
        print("Error: respnonse is empty")
        return
    }

    self.objects = responseDictionary["result"] as? [AnyObject]

   // ...
}