如何正确清理 Swift 中的 NSURLSession
How to properly clean up an NSURLSession in Swift
我正在使用以下代码在 class 的 init 上创建一个 NSURLSession:
dispatch_once(&Static.token) { [unowned self] in
let configuration = NSURLSessionConfiguration.backgroundSessionConfigurationWithIdentifier(CONSTANTS.BackgroundSessionUploadIdentifier)
Static.session = NSURLSession(configuration: configuration, delegate: self, delegateQueue: nil)
}
完成后,class 不会被取消,任何未来上传的回调都将第一个 class 实例化作为它们自己。上传完成后如何正确清理 NSURLSession?
我的整个class可以在这里看到:
通话
session.finishTasksAndInvalidate()
,session会在最后一个任务完成后销毁
或
session.invalidateAndCancel()
,会话会立即销毁
我正在使用以下代码在 class 的 init 上创建一个 NSURLSession:
dispatch_once(&Static.token) { [unowned self] in
let configuration = NSURLSessionConfiguration.backgroundSessionConfigurationWithIdentifier(CONSTANTS.BackgroundSessionUploadIdentifier)
Static.session = NSURLSession(configuration: configuration, delegate: self, delegateQueue: nil)
}
完成后,class 不会被取消,任何未来上传的回调都将第一个 class 实例化作为它们自己。上传完成后如何正确清理 NSURLSession?
我的整个class可以在这里看到:
通话
session.finishTasksAndInvalidate()
,session会在最后一个任务完成后销毁
或
session.invalidateAndCancel()
,会话会立即销毁