2013-05-06 8 views
5

Ho due richieste che iniziano una dopo l'altra. Richiesta iniziale come questaDifferenzia tra gli oggetti NSURLConnection in delegato

NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"http://www.google.com"]]; 
NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:60]; 
NSURLConnection * connection = [[NSURLConnection alloc] 
           initWithRequest:request 
           delegate:self startImmediately:NO]; 
[connection scheduleInRunLoop:[NSRunLoop mainRunLoop] 
         forMode:NSDefaultRunLoopMode]; 
[connection start]; 

e un'altra richiesta che inizia in questo modo.

NSURL *url1 = [NSURL URLWithString:[NSString stringWithFormat:@"http://www.apple.com"]]; 
NSURLRequest *request1 = [NSURLRequest requestWithURL:url1 cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:60]; 
NSURLConnection *connection1 = [[NSURLConnection alloc] initWithRequest:request1 delegate:self]; 
[connection1 release]; 

come posso distinguere tra questi due in metodo delegato?

-(void)connectionDidFinishLoading:(NSURLConnection *)connection{} 

Non voglio mantenere alcuna variabile di classe extra per questo scopo.

+0

Verificare se l'argomento 'connection' nel metodo di callback è uguale alle variabili' connection' o 'connection1' nel codice. – Markus

risposta

4

E 'semplice:

-(void)connectionDidFinishLoading:(NSURLConnection *)connection 
{ 
    if (connection == connection1) 
    { 
     //It's for connection1. 
    } 
    else if (connection == connection2) 
    { 
     //It's for connection2. 
    } 
} 

Si può passare attraverso questa bella SO Domanda: Managing multiple asynchronous NSURLConnection connections

+0

In questo caso devo mantenere due variabili di classe Connection1 e Connection 2, poiché entrambe le connessioni potrebbero funzionare contemporaneamente. E sto cercando di evitare queste variabili extra. – NaXir

+0

In tal caso, posso chiederti perché stai usando questo vecchio approccio? – Bhavin

+0

L'ho trovato facile da fare. Per favore, condividi il nuovo approccio? – NaXir

2

Prendete il vostro NSURLConnection oggetti in file .h e controllare nel vostro metodo delegato Markus ha suggerito.

o

sottoclasse tuo NSURLConnection e quindi è possibile aggiungere tag proprietà alla classe di connessione durante la creazione, nel delegare metodi verificare la presenza di tag appropriato. È possibile trovare working tutorial here.

Problemi correlati