Прежде чем вы прочитаете это, пожалуйста, поймите, что я немного начинаю с Swift, и я пытаюсь учиться. Я просматривать несколько сайтов в надежде получить ответ, но я либо не может найти или сделать это неправильно .. Я после этого учебника, но это старый и не обновлял >>Tutorial I followed < <URLSession & JSONSerialization Swift 3
Я также попытался изменить некоторые на быстрые 3 - хотя я, вероятно, не сделал это правильно.
Как правильно правильно настроить URLSession? Я получаю эту ошибку:
invalid conversion from throwing function of type'(_, _, _) throws -> Void' to non-throwing function type
для этой строки ниже:
let task : URLSessionDataTask = session.dataTask(with: request, completionHandler: {data, response, error -> Void in
и для переменной "jsonDict" - я получаю ошибку, что у меня есть
extra arg 'error' in call.
Заранее спасибо
var urlString:String = ("http://query.yahooapis.com/v1/public/yql?q=select * from yahoo.finance.quotes where symbol IN "+stringQuotes+"&format=json&env=http://datatables.org/alltables.env").addingPercentEncoding(withAllowedCharacters: .urlHostAllowed)!
var url : URL = URL(string: urlString)!
var request: URLRequest = URLRequest(url:url)
let config = URLSessionConfiguration.default
let session = URLSession(configuration: config)
let task : URLSessionDataTask = session.dataTask(with: request, completionHandler: {data, response, error -> Void in
if((error) != nil) {
println(error.localizedDescription)
}
else {
var err: NSError?
var jsonDict = try JSONSerialization.JSONObject(with: data, options: JSONSerialization.ReadingOptions.mutableContainers, error: &err) as NSDictionary
if(err != nil) {
println("JSON Error \(err!.localizedDescription)")
}
else {
var quotes:NSArray = ((jsonDict.objectForKey("query") as NSDictionary).objectForKey("results") as NSDictionary).objectForKey("quote") as NSArray
DispatchQueue.main.async(execute: {
.default.post(name: Notification.Name(rawValue: kNotificationStocksUpdated), object: nil, userInfo: [kNotificationStocksUpdated:quotes])
})
}
}
})
task.resume()
}
его должно быть 'вар jsonDict = попробовать JSONSerialization.JSONObject (с: данными, опции: JSONSerialization.ReadingOptions.mutableContainers) как NSDictionary', в стремительном аргументе-ошибок удалены – Vinodh
@Vinodh - Спасибо, я не думал, что все будет так просто. – zya
Опубликовать в качестве ответа он будет полезен для других – Vinodh