J'écris un chargeur RSS et en utilisant le NSXMLParser pour analyser une page XML pour moi. Tout fonctionne bien.Comment faire la distinction entre NSURLConnections dans les méthodes de délégué?
C'est le code qui gère la connexion de manière asynchrone:
static NSString *feedURLString = @"http://www.example.com/data.xml";
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:feedURLString]];
feed = [[[NSURLConnection alloc] initWithRequest:request delegate:self] autorelease];
Maintenant, je suis en train d'ajouter un autre site à l'aide du même analysable code ci-dessus, mais je dois faire une action différente, sur un autre URL
Je suis en œuvre la fonction de délégué:
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
le problème est que je ne peux pas comprendre quel site a été appelé, je ne suis arrivé les données.
Comment puis-je savoir à quelle URL la connexion est résolue?
Par exemple dans:
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
Je peux vérifier la NSString
en NSURL URL
qui vient de la NSURLResponse
mais dans la fonction ci-dessus, je ne peux pas.
Sur 10.5+, vous pouvez utiliser 'NSMapTable' pour gérer le mappage' NSURLConnection -> NSURL'. Sur 10.0 à 10.4, vous pourriez faire de même, mais vous seriez coincé en utilisant l'API C clunk ('NSCreateMapTable' et amis) au lieu d'une API Obj-C. Donnez certainement un aspect à la structure PubSub si vous avez besoin de 10.5+. –
Excellent point, NSMapTable est une excellente alternative, et plus facile que de plonger dans CFMutableDictionary. :-) –