J'ai une application IPhone qui utilise des services web pour obtenir des données à partir d'un serveur. Je mets chaque appel au webservice dans une sous-classe NSOperation afin qu'il puisse être threadé. Ma question est, quelle est la manière recommandée de passer l'information d'une sous-classe de NSOperation accomplie. J'envoie actuellement un NSNotification à la fin de ma méthode principale et tout code qui attend la fin de NSOperation, s'abonne à la notification. Et puis j'utiliserai la partie objet de NSNotificationWithName: Object: pour renvoyer des informations de l'opération.Cocoa - Retour d'informations de NSOperation
Je ne savais pas s'il y avait une meilleure façon de le faire. J'ai entendu parler de Key Value Coding et ensuite je pourrais utiliser Key Value Observing pour détecter quand la propriété isFinished pour l'opération est modifiée, mais je ne suis pas sûr de la meilleure pratique. J'essaie également de m'assurer que mon application est sûre pour les threads, ce qui ne serait pas un problème, du moment que ma notification a été envoyée à la fin de la méthode principale, donc l'objet dans la notification serait ne plus être utilisé dans le fil car il se terminera.
Enfin, je fais appel à la notification comme ceci:
[[NSNotificationCenter defaultCenter] performSelectorOnMainThread:@selector(postNotification:) withObject:[NSNotification notificationWithName:@"notificationName" object:dataObject] waitUntilDone:NO];
le document est vous pouvez l'aimer. –
frank