En Objective-C, es posible pasar una clase como un parámetro a un método:Declarar un parámetro ObjC que una clase conforme a un protocolo de
- (void) methodThatTakesClass:(Class)theClass;
Y es posible pasar una instancia que es conforme a un protocolo como parámetro:
- (void) myConformInstance:(id <MyProtocol>)theObject;
¿Es posible utilizar la funcionalidad combinada? Un método que toma una clase que se ajusta a un cierto protocolo.
Desde [Protocolos] (http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjectiveC/Chapters/ocProtocols.html) : "Los protocolos no se pueden usar para escribir objetos de clase. Solo las instancias pueden escribirse estáticamente en un protocolo, del mismo modo que solo las instancias pueden escribirse estáticamente en una clase. (Sin embargo, en el tiempo de ejecución, ambas clases e instancias responden a conformsToProtocol: mensaje). " – albertamg
@albertamg Buen descubrimiento. Sin embargo, al menos algunos compiladores lo dejan pasar. La regla podría deberse a que no puede cambiar el objeto que representa la clase para que se ajuste a un protocolo. – ughoavgfhw