2016-04-01 3 views
1

Ich AFNetworking mit und ich habe eine Frage, ich eine andere Funktion als Rückgabewert korrektAFNetworking - rufen Sie Funktion innerhalb

- (AFHTTPRequestOperation *)GET:(NSString *)URLString 

        parameters:(id)parameters 

         success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success 

         failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure 

{ 

    AFHTTPRequestOperation *operation = [self HTTPRequestOperationWithHTTPMethod:@"GET" URLString:URLString parameters:parameters success:^(AFHTTPRequestOperation 
*requestOperation, __unused id responseObject) { 

     if (success) { 

      int status = [[responseObject objectForKey:@"Status"] intValue]; 



      else if(status == -1) 

      { 

       [self HTTPRequestOperationWithHTTPMethod:@"GET" URLString:URLString parameters:parameters success:^(AFHTTPRequestOperation *requestOperation, __unused id responseObject) { 

        if (success) { 

         NSLog(@"adfasdfasdfasdf"); 

         success(requestOperation,responseObject); 

        } 

       } failure:^(AFHTTPRequestOperation * operation, NSError *error) { 

        NSLog(@"ERROR: %@", error); 

        failure(nil, error); 

       }]; 



      } 

      else 

       success(requestOperation,responseObject); 

     } 

    } failure:failure]; 

    operation.securityPolicy.allowInvalidCertificates = YES; 

    operation.securityPolicy.validatesDomainName = NO; 

    [self.operationQueue addOperation:operation]; 



    return operation; 

} 

wenn Status = -1 aufrufen möchten. Ich rufe mehr Funktion mit Param oben, aber does't arbeiten.

else if(status == -1) 

      { 

       [self HTTPRequestOperationWithHTTPMethod:@"GET" URLString:URLString parameters:parameters success:^(AFHTTPRequestOperation *requestOperation, __unused id responseObject) { 

        if (success) { 

         NSLog(@"adfasdfasdfasdf"); 

         success(requestOperation,responseObject); 

        } 

       } failure:^(AFHTTPRequestOperation * operation, NSError *error) { 

        NSLog(@"ERROR: %@", error); 

        failure(nil, error); 

       }]; 



      } 

Run App und ich Bug-Funktion nicht zum Erfolg oder Misserfolg aufrufen.

Antwort

0

Sie müssen in AFNetworking den Erfolg des Fehlers mit der Bedingung nicht überprüfen. AFNetworking bieten Block.

Folgen unten Code:

- (AFHTTPRequestOperation *)GET:(NSString *)URLString 

       parameters:(id)parameters 

        success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success 

        failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure 

{ 

    AFHTTPRequestOperation *operation = [self HTTPRequestOperationWithHTTPMethod:@"GET" URLString:URLString parameters:parameters success:^(AFHTTPRequestOperation 
*requestOperation, __unused id responseObject) { 


     int status = [[responseObject objectForKey:@"Status"] intValue]; 


     if(status == -1) 

     { 

      [self HTTPRequestOperationWithHTTPMethod:@"GET" URLString:URLString parameters:parameters success:^(AFHTTPRequestOperation *requestOperation, __unused id responseObject) { 


        NSLog(@"adfasdfasdfasdf"); 

        success(requestOperation,responseObject); 



      } failure:^(AFHTTPRequestOperation * operation, NSError *error) { 

       NSLog(@"ERROR: %@", error); 

       failure(nil, error); 

      }]; 



     } 

     else 

      success(requestOperation,responseObject); 

    } 

} failure:failure]; 

operation.securityPolicy.allowInvalidCertificates = YES; 

operation.securityPolicy.validatesDomainName = NO; 

[self.operationQueue addOperation:operation]; 



return operation; 

} 
+0

Ich meinte, dann status = -1 Methode "[self HTTPRequestOperationWithHTTPMethod: @" GET "URLString: URLString" funktioniert nicht. Wie man es repariert. – TrungVu

+0

Zuerst haben Sie entfernt, ob Bedingung auf Erfolg? überprüfe meinen Code Ich habe den Zustand beim Erfolg entfernt. – ivarun

+0

danke ivarun :), ich bin fertig – TrungVu

0
if (success) { 

     int status = [[responseObject objectForKey:@"Status"] intValue]; 



     else if(status == -1) 

     { 

sind Sie dies, wenn und sonst sicher, ob ein Paar sind?

+0

sicher, ich Bug es. – TrungVu