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.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage