Is there any way I can for example say:
Alamofire.Manager.cancelAllRequests() or Alamofire.Manager.sharedInstance.cancelAllRequests()?
If it helps, I got cnoon's answer to work on my own instance of an Alamofire.Manager. I have a singleton class called NetworkHelper which has a property called alamoFireManager, which handles all my network requests. I just call the NSURSession invalidateAndCancel() on that alamoFireManager property, reset my manager in setAFconfig(), then I'm good to go.
class NetworkHelper {
private var alamoFireManager : Alamofire.Manager!
class var sharedInstance: NetworkHelper {
struct Static {
static var instance: NetworkHelper?
static var token: dispatch_once_t = 0
}
dispatch_once(&Static.token) {
Static.instance = NetworkHelper()
}
return Static.instance!
}
init(){
setAFconfig()
}
func setAFconfig(){
let configuration = NSURLSessionConfiguration.defaultSessionConfiguration()
configuration.timeoutIntervalForResource = 4
configuration.timeoutIntervalForRequest = 4
alamoFireManager = Alamofire.Manager(configuration: configuration)
}
func cancelAllRequests() {
print("cancelling NetworkHelper requests")
alamoFireManager.session.invalidateAndCancel()
setAFconfig()
}