2011-01-20 1 views
0

Récemment, je lisais "Cocoa Design Patterns". Quand on parle de KVC, il a dit « KVC vérifier si un accesseur nommé - < clé> ou -get < Key> existe d'abord, sinon, il va essayer variable d'instance nommée < clé> ou _ < clé> ". Est-ce que obj-c runtime vérifie si une variable d'instance existe? Je pense que cela ne peut se faire dans le temps ... la compilationComment KVC dans Cocoa vérifie si une variable d'instance est accessible?

Toutes les réponses sont appréciées^_^

Répondre

1

Il peut en effet. La documentation pertinente pour cela est the Objective-C Runtime Reference; spécifiquement, class_getInstanceVariable. La partie que la documentation omet est que cette fonction renvoie NULL lorsque les instances de la classe ne possèdent pas cette variable. KVC, vraisemblablement, transmet la classe de l'objet et les noms des variables candidates à cette fonction, et le premier nom pour lequel le moteur d'exécution est Ivar est celui qu'il utilise.

+0

Merci! Je dois admettre que l'exécution d'Obj-C est vraiment puissante ~ – huoxinbird