I'm trying to get some data from a JSON content(in my data.swift file) and assign it to "comments". Anyone know whats going wrong here and how I can fix it? Seems like a syntax issue that I'm having trouble with.
The error I am getting:
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
}
It's not liking the comments = story["comments"]
part.
According to your own declaration, story
is a [String:AnyObject]
. That means that story["comments"]
is an AnyObject. But comments
is a [String:AnyObject]
, not an AnyObject. You can't assign an AnyObject where a [String:AnyObject]
is expected.
There is an error in your code, but the error message you're seeing is incorrect and misleading due to a Swift compiler bug. The actual error message should read: AnyObject is not convertible to [String:AnyObject]
.
self.story["comments"]
returns an AnyObject
. To assign that value to self.comments
you must first typecast AnyObject
to the Dictionary type [String:AnyObject]
.
For example:
self.comments = self.story["comments"] as! [String:AnyObject]
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With