Swift 2 & JSON функция для асинхронного запроса
У меня есть функция для отправки асинхронного запроса URL на Swift 1.2, но это не работает на Swift 2.
func getpost(method:String,bodyt:String,url:String,completion: (res: AnyObject?)->Void){
UIApplication.sharedApplication().networkActivityIndicatorVisible = true
let urlString = url
let url:NSURL! = NSURL(string: urlString)
let request = NSMutableURLRequest(URL: url)
request.HTTPMethod = method
let postString = bodyt
if method.uppercaseString == "POST"{
request.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding)
}
let mainQueue = NSOperationQueue.mainQueue()
NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue())
{(response, data, error) in
if let httpResponse = response as? NSHTTPURLResponse {
let statusCode = httpResponse.statusCode
if (error == nil) && (statusCode == 200){
let resultdata: AnyObject? = NSJSONSerialization.JSONObjectWithData(data!, options: nil, error: nil)
dispatch_async(dispatch_get_main_queue(), {
completion(res: resultdata)
})
}
}
}
}
пожалуйста помогите:)
1 ответ
NSURLConnection устарела в iOS 9, что, вероятно, вызывает у вас проблемы. Насколько я могу понять из того, что вы пытаетесь сделать, "новый способ" состоит в инициализации NSURLSession, а затем NSURLSessionDataTask для извлечения данных, которые вам необходимы. Это можно сделать с помощью обработчика завершения почти таким же образом, как вы описали здесь, или с помощью методов делегата. Вы можете узнать больше на справочной странице для разработчиков: https://developer.apple.com/library/ios/documentation/Foundation/Reference/NSURLSession_class/ Я могу прислать вам пример кода, если хотите. Удачи!