2010-07-12 2 views

Répondre

7

Si vous avez un Class (nous l'appellerons MyClass), alors vous devez obtenir sa méta-classe pour opérer sur les méthodes de classe.

En d'autres termes:

Class myClass = [MyClass class]; 
unsigned int numInstanceMethods = 0; 
Method * instanceMethods = class_copyMethodList(myClass, &numInstanceMethods); 
//instanceMethods is an array of all instance methods for MyClass 

Class myMetaClass = objc_getMetaClass(class_getName(myClass)); 
unsigned int numClassMethods = 0; 
Method * classMethods = class_copyMethodList(myMetaClass, &numClassMethods); 
//classMethods is an array of all class methods for MyClass 

Fondamentalement, la classe est pour opérer sur des choses par exemple au niveau, et la classe méta est pour opérer sur des choses au niveau de la classe.

Espérons que cela soit suffisant pour vous aider à déterminer où aller. :)

Plus d'informations incroyablement utiles: http://www.sealiesoftware.com/blog/archive/2009/04/14/objc_explain_Classes_and_metaclasses.html

+0

Great! Je vous remercie! Votre réponse est très utile. – Edward

Questions connexes