1
API呼び出しにNSURLSession
を使用しています。 APIがヒットしたら、応答を得る前に別のView Controllerに移動します。現在のビューコントローラで実行中のNSURLSession
をすべて停止する方法はありますか?親切に私を導く。別のUIViewControllerに移動するときにNSURLSessionをキャンセルする方法
サンプルコードが機能しません。別のUIViewController
に移動すると、その新しいセッションが作成されて正常に動作していますが、以前のUIViewControllers's
セッションが再開します。そのセッションを止めるには?親切に私を導く。
サンプルは、APIカルを取得:
var testSession = NSURLSession.sharedSession()
var testTask = NSURLSessionDataTask()
override func viewDidAppear(animated: Bool) {
testTask = testSession.dataTaskWithURL(NSURL(string: "http://httpbin.org/get")!, completionHandler: { (data, response, error) -> Void in
do{
let str = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.AllowFragments) as! [String:AnyObject]
print(str)
}
catch {
print("json error: \(error)")
}
})
testTask.resume()
}
override func viewDidDisappear(animated: Bool) {
testTask.cancel()
testSession.finishTasksAndInvalidate()
}