不能使用types为“String”的索引来下标types为“”的值

我试图从JSON内容(在我的data.swift文件中)获取一些数据,并将其分配给“注释”。 任何人都知道这里出了什么问题,我该如何解决? 看起来像我有麻烦的语法问题。

我得到的错误: 我得到的错误

import UIKit class CommentsTableViewController: UITableViewController { var story = [String:AnyObject]() var comments = [String:AnyObject]() override func viewDidLoad() { super.viewDidLoad() comments = story["comments"] tableView.estimatedRowHeight = 140 tableView.rowHeight = UITableViewAutomaticDimension } 

它不喜欢comments = story["comments"]部分。

您的代码中存在错误,但是您看到的错误消息由于Swift编译器错误而不正确且误导。 实际的错误信息应为: AnyObject is not convertible to [String:AnyObject]

self.story["comments"]返回一个AnyObject 。 要将该值分配给self.comments ,必须先将types为AnyObject的types转换为Dictionarytypes[String:AnyObject]

例如:

 self.comments = self.story["comments"] as! [String:AnyObject] 

根据你自己的声明, story[String:AnyObject] 。 这意味着story["comments"]是一个AnyObject。 但是comments[String:AnyObject]而不是 AnyObject。 您不能指定一个AnyObject,其中[String:AnyObject]是预期的。