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
はい、上の図と同様です。ただし、パラメータの順序は 'data'で最初に異なることに注意してください。しかしそれ以外は、それは非常に似ています。キューに関しては、 'sharedSession'はデフォルトでシリアルバックグラウンドのキューになります(独自のキューを指定したい場合は' NSURLSessionConfiguration'を使って独自の 'NSURLSession'をインスタンス化できます)。しかし、デフォルトのバックグラウンドキューはおそらく大丈夫でしょう。 – Rob