Je crée un objet MyOperation (hérité de NSOperation) et l'ajoute à un NSOperationQueue. Ensuite, je fais KVO sur MyOperation. J'utilise cette méthodeNSopération et observation de valeur de clé
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context;
pour obtenir une valeur de MyOperation si elle est terminée. Dans cette méthode j'utilise une méthode de commodité d'une autre classe pour obtenir d'autres données.
Peut-être y a-t-il des problèmes de synchronisation dans la méthode observeValue ...?
Merci pour cette réponse! –
NSOpertation utilisant KVO dans son impl est un point discutable; Je ne dis pas que le KVO est mauvais, je dis qu'une notification est un meilleur choix. Les autres classes utilisant KVO ne rendent pas toutes les utilisations de KVO brusquement valides. Utiliser KVO pour cela vous lie exclusivement à des opérations, à la connaissance des keypaths, à devenir des observateurs qui à leur tour couplent vos deux classes ensemble. Une notification d'autre part est simple; postez-le dans votre opération, donnez-lui les données, et autre chose dans l'application ... – dannywartnaby
Je vous suggère de lire à nouveau mon commentaire, je n'ai jamais dit ou laissé entendre qu'il "rend toutes les utilisations de KVO valides" Je viens de souligner que vous dire qu'il "n'est pas sage" d'utiliser le KVO est très trompeur. Pensez à toute occasion où vous utiliseriez le KVO par opposition aux notifications; Les notifications sont grossières et diffusées, KVO implique un couplage entre deux objets. Pensez au concept d'une opération, c'est un travail atomique, quelque chose le crée, et quelque chose va probablement devoir surveiller ce qu'il fait et quand c'est complet. si l'application a besoin de savoir ce qui se passe Notifier, si le client ne le fait, KVO – GilesB