[问题]Swift如何停止正在执行的NSURLSession?

楼主: lsyjim (Jim)   2016-02-17 08:53:19
我有一段程式码如下:
class func getURL(urlString:String, httpMethod:String, completion:(NSDictionary) -> Void) {
let request : NSMutableURLRequest = NSMutableURLRequest()
request.URL = NSURL(string: urlString)
request.HTTPMethod = httpMethod
let session = NSURLSession.sharedSession()
session.dataTaskWithRequest(request,completionHandler: {(data:NSData?, response: NSURLResponse?, error:NSError?) -> Void in
do{
if let _ = NSString(data:data!, encoding: NSUTF8StringEncoding) {
let jsonDictionary = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers) as! NSDictionary
Log.msg("load completed \(urlString)")
completion(jsonDictionary)
}
} catch {
Log.msg("bad things happened")
completion(NSDictionary())
}
}).resume()
}
NSURLSession 似乎都是同一条执行绪在执行,因为当我多次呼叫此方法时,都会要等前面
的Request做完,下一次Request才会执行。
我想问的是,是否可在前一次的Request未完成时,只要再次呼叫就立刻中断前一次的作业呢?
作者: appleway (苹果爱天空)   2016-02-17 10:20:00
task 可以cancel. 不过应该可以平行执行
作者: darktt (小朱)   2016-02-17 20:39:00
swift在optional变量下一定要用unwrap的方法来确认不是nil
作者: zonble (zonble)   2016-02-17 21:27:00

Links booklink

Contact Us: admin [ a t ] ucptt.com