2010-03-25 8 views
4

Il semble mort simple, pour créer un NSURLConnection que je fais habituellement ceci:NSURL de NSURLConnection?

NSURL *theURL = [NSURL URLWithString:urlString]; 
NSURLRequest *req = [NSURLRequest requestWithURL:theURL]; 
NSURLConnection *connection = [NSURLConnection connectionWithRequest:req delegate:self]; 

Mais comment puis-je obtenir l'URL de retour dans les méthodes de délégué? À court d'accrocher à eux-mêmes (je cours plusieurs connexions à la fois, donc cela devient légèrement en désordre). Il semble que je devrais pouvoir récupérer l'URL d'une connexion.

Ai-je raté quelque chose?

+1

Avez-vous déjà pensé à elle pour obtenir url '- (void) connectionDidFinishLoading: (NSURLConnection *) connection' avec objet' NSURLConnection'? –

Répondre

9

En-connexion: didReceiveResponse: vous pouvez obtenir l'URL. Notez qu'il ne s'agit peut-être pas de la même URL que celle avec laquelle vous avez créé la connexion car la connexion a peut-être été redirigée.

- (void)connection:(NSURLConnection *)connection 
      didReceiveResponse:(NSURLResponse *)response { 
    NSURL * url = [response URL]; // The URL 
} 
+0

thats ok pour montrer l'initialisation, mais comment savoir quelle connexion a fini d'abord - (void) connectionDidFinishLoading: (NSURLConnection *) connexion – illuminatus

+2

Je ne sais pas exactement ce que vous dites, mais il semble que vous utilisez un seul déléguer pour plusieurs connexions. Je ne le recommande pas car vous définissez souvent des variables d'instance en fonction des réponses et des données reçues dans les méthodes déléguées. Vous devriez probablement créer une classe dans le seul but d'être un délégué et instancier un nouveau pour chaque connexion. –