let defaultConfiguration = URLSessionConfiguration.default
let operationQueue = OperationQueue.main
let defaultSession = URLSession(configuration: defaultConfiguration, delegate: self, delegateQueue: operationQueue)
if let url = URL(string: "https://newsapi.org/v1/articles?source=abc-news-au&sortBy=top&apiKey=47d2ce48babd47b1bc391b426b89ca23")
{
(defaultSession.dataTask(with: url) { (data, response, error) in
if error != nil{
return
}
do {
let resultJson = try JSONSerialization.jsonObject(with: data!, options: []) as? [String:AnyObject]
if var dataDictionary = resultJson {
// dataDictionary["access_token"] as AnyObject
self.dataArray = dataDictionary["articles"] as! [Any]
var dataDictionary22 = self.dataArray[0] as! [String: Any] as [String : AnyObject]
let url = URL(string:
"\(String(describing: dataDictionary22["urlToImage"]!))")
print("url -> \(String(describing: url!))")
let task = URLSession.shared.dataTask(with: url!) { data, response, error in
guard let data = data, error == nil else {
return
}
self.imageView.image = UIImage(data: data)
}
task.resume()
}
} catch {
print("Error -> \(error)")
}
}).resume()
}
我试图通过nsurlsession获得从开放API的新闻更新,它有dictionary->阵列 - > dictionary->在关键的“urlToImage” 但IAM越来越像URL,但http://www.abc.net.au/news/image/8968140-1x1-700x700.jpg数据中没有得到的图像文件是空任何一个可以最小化代码长度并解决我的问题从url获取图片时出错?
不要使用'[字符串:AnyObject ]作为Swift 3中的JSON字典表示。 JSON字典是'[String:Any]',因为所有的JSON字典值都是(Swift)值类型。 – vadian