2009-05-12 2 views
0

J'ai classDownload qui utilise NSURLConnection. Je souhaite conserver tous les événements NSURLConnection dans classDownload. ClassA veut utiliser classDownload mais reçoit également des notifications telles que connectionDidFinishLoading, appelée Finish dans classDownload. Comment puis-je obtenir les notifications de classDownload vers ClassA?Ai-je besoin d'un protocole pour la notification?

Répondre

2

En supposant que classDownload est le délégué du NSURLConnection, vous pouvez simplement utiliser NSNotificationCenter pour diffuser des événements lorsque les méthodes déléguées sont appelées. Puis, dans classA, abonnez-vous aux événements en classDownload en utilisant addObserver:. Faites-moi savoir si vous avez besoin d'éclaircissements ou d'extraits de code.

Modifier

Pour répondre directement à la question dans votre titre, non, vous n'avez pas besoin d'un protocole de souscrire à des événements publiés par un objet en utilisant NSNotificationCenter.

+0

Merci. D'où proviennent les valeurs de notificationSelector pour NSNotificationCenter? – 4thSpace

+0

Voulez-vous dire dans la méthode addObserver? C'est juste le sélecteur qui devrait être appelé sur la classe que vous transmettez quand l'événement se produit. Vous enveloppez votre signature de fonction dans @selector() pour l'obtenir. Par exemple, si vous avez une méthode dans la classe A appelée downloadFinished qui prend 1 paramètre, vous passerez @selector (downloadFinished :) in à l'appel de la méthode addObserver:. –

+0

Merci. Peu importe ce que je fais, il continue à télécharger ma page d'accueil, même si je lui donne différents fichiers à télécharger. J'ai essayé NSLog (@ "request% @:", [request URL]); pour voir quelle URL il obtient dans la connexion mais rien de ce qu'il produit sur la console. Avez-vous des suggestions? – 4thSpace