作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在做一个 2015 年的教程,对 swift 非常陌生,我从 self.objects< 得到类型
行。[AnyHashable : Any]?
has no subscript members 错误
Moltin.sharedInstance().product.listing(withParameters: nil, success: { (responseDictionary)-> Void in
//Assign Products array to object property
self.objects = responseDictionary["result"] as! [AnyObject]
}) { (responseDictionary, error) in
print("Something went wrong!")
}
}
最佳答案
重构您的代码以将响应正确地转换为字典。
Moltin.sharedInstance().product.listing(withParameters: nil, success: { (response) -> Void in
//Assign Products array to object property
guard let responseDictionary = response as? [String: AnyObject] else {
return
}
self.objects = responseDictionary["result"] as! [AnyObject]
print(self.objects)
//Tell the table view to reload it's data
self.tableView.reloadData()
}) { (responseDictionary, error) in
print("Something went wrong!")
}
此后我尝试运行您的代码,它工作正常。 API 没有返回您期望的结果。让我们来看看...
let pagination = responseDictionary["pagination"]!
let results = responseDictionary["result"] as! [AnyObject]
print(pagination.count) // 8
print(results.count) // 0
如您所见,pagination
键下有 8 个值,而 results
键下有 0 个值。这意味着解析逻辑是正确的。如果有错误,它是在 API 端。API 不返回任何结果,这就是表格为空的原因。
祝你好运,但我希望这对你有所帮助!
关于ios - 类型 '[AnyHashable : Any]?' 没有下标成员 - 使用 Moltin API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46780676/
我是一名优秀的程序员,十分优秀!