不能使用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]
是预期的。