У меня есть следующий код:ИОС Отменить NSURLConnection Swift
func getStoryContent(cityID : String, completionHandler: (loaded: Bool, dataNil: Bool) ->()) ->() {
let scriptUrl = "***"
var user_id = "nil"
if let userID = NSUserDefaults.standardUserDefaults().stringForKey("userId") {
user_id = userID
}
var params = ***
let myUrl = NSURL(string: scriptUrl);
let request: NSMutableURLRequest = NSMutableURLRequest(URL: myUrl!)
request.HTTPMethod = "POST"
let data = params.dataUsingEncoding(NSUTF8StringEncoding)
request.timeoutInterval = 10
request.HTTPBody=data
request.HTTPShouldHandleCookies=false
let queue:NSOperationQueue = NSOperationQueue()
NSURLConnection.sendAsynchronousRequest(request, queue: queue, completionHandler:{ (response: NSURLResponse?, data: NSData?, error: NSError?) -> Void in
do {
....code.....
Это работает в фоновом режиме при отображении слайд-шоу изображений для пользователя, это в основном загружает больше изображений, которые будут отображаться и присоединяет их в массив изображений. Проблема в том, что пользователь может выйти из слайд-шоу в любое время, в этом случае мне нужно отменить это NSURLConnection
. У меня есть функция, которая выполняется, когда пользователь хочет выйти из слайд-шоу, но я не уверен, какой код добавить к нему, чтобы должным образом отменить это соединение.
Могу ли я использовать обработчик завершения с этим, это обязательная часть кода для меня – Alk
Да, как я проиллюстрировал выше. Обратите внимание, что порядок параметров отличается, однако, с 'data'. Но кроме этого, это очень похоже. Что касается очереди, то «sharedSession» по умолчанию представляет собой последовательную фоновую очередь (но вы можете создать свою собственную «NSURLSession», используя «NSURLSessionConfiguration», если вы хотите указать свою собственную очередь). Но фоновая очередь по умолчанию должна быть в порядке. – Rob