Domanda

Nella mia app devo scaricare e inserire alcuni dati ... Prima di tutto devo scaricare alcuni dati e poi devo fare una richiesta di post. Uso la richiesta asincrona per non bloccare l'interfaccia utente della mia app ... Ma quando chiamo il mio metodo per inviare alcuni dati ... non mi interessano i dati restituiti dal server. Ma il metodo this viene chiamato anche quando faccio qualche richiesta di post.

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)aResponse
{
    NSLog(@"------------------------------- connectionDidReceiveResponse");
    expectedResponseLength = [NSNumber numberWithFloat:[aResponse expectedContentLength]];
    URLresponse = aResponse;
}

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{   



    [self.responseData appendData:data];
}

Come posso eseguire la mia richiesta di post come questa di seguito senza chiamare (automatico) questi 2 metodi (su) (usato quando scarico informazioni) e senza congelare la GUI utente (non mi interessano i dati quando inserisco la richiesta ma iohai bisogno di dati nel primo caso)?

La mia richiesta di post è questa:

- (void)postRequestWithURLState:(NSString *)url
{
    NSString *bodyRequest = nil;
    NSURL *requestURL = [NSURL URLWithString:url];
    NSMutableURLRequest *theRequest = [[NSMutableURLRequest alloc] init];

    //NSLog(@"-------------- bodyRequest: %@", bodyRequest);



    [theRequest setURL:requestURL];
    [theRequest setTimeoutInterval:2.0];
    [theRequest setHTTPMethod:@"POST"];
    [theRequest setHTTPBody:[bodyRequest dataUsingEncoding:NSASCIIStringEncoding]];
    [self.oauthAuthentication authorizeRequest:theRequest];
    NSURLConnection *conn = [NSURLConnection connectionWithRequest:theRequest delegate:self];




    self.web = conn;




}
È stato utile?

Soluzione

È possibile conservare un riferimento a ciascuna delle diverse richieste dopo averle eseguite, quindi creare un codice condizionale nei metodi delegato che faccia qualcosa di diverso per i due.

Questa è una soluzione rudimentale e mi sembra di curare i sintomi.Forse dovresti rifattorizzare il tuo approccio e creare controller per ciascuna delle due operazioni ed eseguire tutte le comunicazioni di rete lì (sembra che tu stia facendo tutto in un controller di visualizzazione ora) piuttosto che dove lo stai facendo ora.

Altri suggerimenti

Stavo cercando una soluzione su Internet, alla fine ho semplicemente creato la mia sottoclasse di NSURLConnection e ho assegnato una variabile tag per distinguerla.Dai un'occhiata a questo post del blog per ulteriori informazioni

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top