1
나는 다음과 같은 코드가 있습니다IOS가있는 NSURLConnection 스위프트 취소
사용자에게 이미지의 슬라이드 쇼를 표시 할 때이 백그라운드에서 실행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
예, 위에서 설명한대로입니다. 매개 변수의 순서는 '데이터'를 먼저 사용하여 다릅니다. 하지만 그 외에도 매우 유사합니다. 큐에 관해서는,'sharedSession'은 디폴트로 시리얼 백그라운드 큐로 설정되어 있습니다. (자신 만의 큐를 지정하고 싶다면'NSURLSessionConfiguration'을 사용하여 자신의'NSURLSession'을 인스턴스화 할 수 있습니다). 하지만 기본 백그라운드 대기열은 괜찮을 것입니다. – Rob