रद्द alamofire मैं एक NetworkRequest वर्ग है, जहां मेरे सारे alamofire अनुरोध किया है:तेज, पिछले अनुरोध
class NetworkRequest {
static let request = NetworkRequest()
var currentRequest: Alamofire.Request?
let dataManager = DataManager()
let networkManager = NetworkReachabilityManager()
let priority = DISPATCH_QUEUE_PRIORITY_DEFAULT
func downloadData<T: Film>(slug: String, provider: String, section: String, dynamic: String, anyClass: T, completion: ([T]?) -> Void) {
var token: String = ""
if LOGGED_IN == true {
token = "\(NSUserDefaults.standardUserDefaults().valueForKey(TOKEN)!)"
}
let headers = [
"Access": "application/json",
"Authorization": "Bearer \(token)"
]
let dataUrl = "\(BASE_URL)\(slug)\(provider)\(section)\(dynamic)"
print(headers)
print(dataUrl)
if networkManager!.isReachable {
currentRequest?.cancel()
dispatch_async(dispatch_get_global_queue(priority, 0)) {
if let url = NSURL(string: dataUrl) {
let request = Alamofire.request(.GET, url, headers: headers)
request.validate().responseJSON { response in
switch response.result {
case .Success:
if let data = response.result.value as! [String: AnyObject]! {
let receivedData = self.dataManager.parseDataToFilms(data, someClass: anyClass)
completion(receivedData)
}
case .Failure(let error):
print("Alamofire error: \(error)")
if error.code == 1001 {
self.goToNoConnectionVC()
}
print("canceled")
}
}
}
}
} else {
goToNoConnectionVC()
}
}
}
और मैं पिछले downloadData अनुरोध को रद्द करने की जरूरत है, जब नया एक शुरू होता है, currentRequest का उपयोग कर को रद्द करने की कोशिश की? .cancel(), लेकिन यह मदद नहीं करता है।
एनएसओपेरेशंसब्लॉक का उपयोग कर अपवादों को रद्द करने की कोशिश कर चुके हैं, लेकिन यह वर्तमान ऑपरेशन को रद्द नहीं करता है।
अब मैं UI को अवरुद्ध करता हूं, ताकि उपयोगकर्ता कोई अन्य अनुरोध न भेज सके। लेकिन यह सही नहीं है, कुछ त्रुटियाँ बाद का कारण बनता है ...
Pls, मदद
मैं तेजी से और प्रोग्रामिंग में काफी नया हूँ। मैं सरणी में अनुरोध कैसे संग्रहीत कर सकता हूं और उन्हें रद्द कर सकता हूं? –
आप इसे एक सरणी में स्टोर कर सकते हैं, लेकिन सबसे पहले मेरे सुझाव की जांच करें – ciccioska