KVO - Comment faire pour vérifier si un objet est un observateur?

Lors de l'observation d'une valeur sur un objet en utilisant addObserver:forKeyPath:options:context:, finalement, vous aurez envie d'appeler removeObserver:forKeyPath: sur l'objet à nettoyer plus tard. Avant cela, cependant, est-il possible de vérifier si un objet est en fait l'observation que la propriété?

J'ai essayé de faire en sorte dans mon code qu'un objet n'est que d'avoir un observateur été retiré quand il a besoin d'être, mais il ya certains cas où il est possible que l'observateur peut essayer d'éliminer lui-même deux fois. Je suis en train de travailler pour éviter cela, mais juste au cas où, j'ai juste été à essayer de comprendre si il existe un moyen de vérifier d'abord si mon code est en réalité un observateur de quelque chose.

  • KVO car elle est assez brut de l'API. Il y a des bibliothèques qui simplifient son utilisation et vous permettent même d'utiliser les blocs pour des raisons de commodité. Découvrez thirdcog.ue/pwcblocks/#goodies pour plus de détails. J'ai aussi ma propre mise en œuvre, avec la possibilité de supprimer automatiquement les observateurs lorsque l'objet est libéré. Il n'a pas été testé dans des applications réelles, mais vous voudrez peut-être jeter un coup d'oeil de toute façon. Recherche pour tastykvo sur GitHub.
InformationsquelleAutor Josh Buhler | 2012-02-10