2010-12-06 19 views
3

Si j'ai une instance d'une classe, par exemple un UIView ou une sous-classe ou simplement une sous-classe de NSObject, comment puis-je obtenir une liste des keypaths observables de cet objet?Comment obtenez-vous une liste de keypaths observables pour KVO?

Je voudrais obtenir une liste des valeurs de keyPath valides pour l'objet pour les utiliser dans la méthode addObserver.

+0

Repost de http://stackoverflow.com/questions/754824/get-an-object-attributes-list-in-objective-c – Endemic

+0

@Endemic: Merci, je vais essayer. Je n'ai pas inclus "kvc" et "attribut" quand j'ai cherché et cette réponse ne mentionne pas kvo ou keypath. – Padawan

Répondre

3

Vous ne pouvez pas obtenir une liste complète des clés compatibles kvo pour un objet. Aucune liste n'existe. Non seulement l'objet est libre d'utiliser les touches qu'il veut, mais il peut même ajouter de nouvelles clés dynamiquement à l'exécution. Le mieux que vous puissiez faire est de parcourir toutes les propriétés, de traiter leurs noms comme des clés, et peut-être parcourir des méthodes à la recherche de n'importe quoi de la forme pour traiter "foo" comme une clé. Mais ce n'est pas infaillible, et il n'est pas garanti de tout attraper.

+0

Kevin, merci pour les alertes et les précautions. Je ne suis pas inquiet pour les clés dynamiques pour le moment. – Padawan