I've been having a problem understanding what xcode wants from me when it gives me the "Extra argument 'error' in call" it keeps pointing to
if let feed = NSJSONSerialization.JSONObjectWithData(data, options: .MutableContainers, error: nil) as? NSDictionary,
I read somewhere that in swift 2 I should add do { but everytime I add it I just keep breaking more stuff. What's the correct syntax in swift 2?
This is the code:
override func viewDidLoad() {
super.viewDidLoad()
let request = NSURLRequest(URL: NSURL(string: feedURL)!)
NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue()) { response, data, error in
if let feed = NSJSONSerialization.JSONObjectWithData(data, options: .MutableContainers, error: nil) as? NSDictionary,
title = feed.valueForKeyPath("feed.entry.im:name.label") as? String,
artist = feed.valueForKeyPath("feed.entry.im:artist.label") as? String,
imageURLs = feed.valueForKeyPath("feed.entry.im:image") as? [NSDictionary] {
if let imageURL = imageURLs.last,
imageURLString = imageURL.valueForKeyPath("label") as? String {
self.loadImageFromURL(NSURL(string:imageURLString)!)
}
self.titleLabel.text = title
self.titleLabel.hidden = false
self.artistLabel.text = artist
self.artistLabel.hidden = false
}
}
}
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…