5 votes

Différencier les objets NSURLConnection dans le délégué

J'ai deux demandes qui démarrent l'une après l'autre. La demande de départ se présente comme suit

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];

et une autre demande commençant ainsi.

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];

Comment puis-je faire la différence entre ces deux méthodes dans la méthode de délégation ?

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

Il n'est pas nécessaire de conserver une variable de classe supplémentaire à cette fin.

4voto

Bhavin Points 12613

C'est simple :

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

Vous pouvez passer par cette belle question : Gestion de plusieurs connexions NSURLConnection asynchrones

2voto

Ankur Points 3350

Prendre votre NSURLConnection dans le fichier .h et vérifiez votre méthode de délégation comme l'a suggéré Markus.

o

Sous-classe de votre NSURLConnection et vous pouvez ensuite ajouter tag à la classe de connexion lors de la création, les méthodes déléguées vérifient la présence de la balise appropriée. Vous pouvez trouver Tutoriel de travail ici .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X