AFNetworking 2: Abbrechen einer AFHTTPRequestOperationManager-Anforderung
Ich habe meine Netzwerkfunktionalität von migriertAFNetworking
zuAFNetworking v2
und stattAFHttpClient
ich benutzeAFHTTPRequestOperationManager
auch iOS6 zu unterstützen.
Mein Problem ist, dass während inAFHttpClient
Es gab die Funktionalität, eine ausstehende Anfrage mit der zu stornieren
- (void)cancelAllHTTPOperationsWithMethod:(NSString *)method path:(NSString *)path;
Methode, in derAFHTTPRequestOperationManager
es gibt keine so offensichtliche Methode.
Was ich bisher gemacht habe, ist UnterklassenAFHTTPRequestOperationManager
und einen iVar deklarieren
AFHTTPRequestOperation *_currentRequest;
Wenn ich eine Anfrage mache, ist der Code ungefähr so
- (void)GetSomething:(NSInteger)ID success:(void (^)(MyResponse *))success failure:(void (^)(NSError *))failure
{
_currentRequest = [self GET:@"api/something" parameters:@{@"ID": [NSNumber numberWithInteger:ID]} success:^(AFHTTPRequestOperation *operation, id responseObject) {
MyResponse *response = [MyResponse responseFromDictionary:responseObject];
success(response);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
failure(error);
}];
}
und ich habe eine
- (void)cancelCurrentRequest;
Methoden, die alles, was das tut, ist
- (void)cancelCurrentRequest
{
if(_currentRequest) {
[_currentRequest cancel]; _currentRequest = nil;
}
}
Nun, ich denke nicht, dass dies eine gute Praxis ist und wenn die Methode aufgerufen wird, bekomme ich(NSURLErrorDomain error -999.)
Deshalb brauche ich einige Ratschläge, um dies richtig zu machen.
Danke im Voraus.