2010-04-23 5 views
0

Je suis maintenant écrire un selon le document here:netServiceBrowserDidStopSearch pas appelé

Actuellement, il semble travailler, classe d'écoute de service Bonjour, je peux recevoir "netServiceBrowserWillSearch:" et "didFindService: moreComing:" correctement. Cependant, après une longue attente, je ne peux pas recevoir "netServiceBrowserDidStopSearch:" ou "netServiceBrowser: didNotSearch:". Par conséquent, je ne sais pas quel est le moment approprié pour mon groupe de délégués d'arrêter de montrer une certaine IU.

Quelqu'un peut-il avoir une idée pour cela? Merci.

Répondre

1

NSNetServiceBrowser n'arrête pas la navigation (et appelle la méthode -netServiceBrowserDidStopSearch: delegate) jusqu'à ce que vous lui disiez explicitement en appelant -stop. Après avoir trouvé les services initiaux, il continue à vous informer lorsque de nouveaux services correspondants sont ajoutés ou que les anciens disparaissent.

La manière dont vous gérez cela dépend de la manière dont vous souhaitez que votre application se comporte. Si vous avez une fenêtre qui affiche en permanence les services disponibles (par exemple, comme la fenêtre Bonjour dans iChat), alors il est préférable de le laisser continuer, et de mettre à jour continuellement la liste en réponse aux messages de délégation. Si vous avez plus comme une boîte de dialogue qui est remplie et disparaît une fois que l'utilisateur fait une sélection (par exemple, comme la boîte de dialogue Ajouter une imprimante ...), alors vous voulez garder le navigateur en cours d'affichage, puis appelez -stop une fois que l'utilisateur l'a rejeté. Si vous attendez de trouver un seul service spécifique, vous pouvez appeler le -stop une fois que vous l'avez trouvé et résolu.