¿Hay alguna manera de indicar al compilador que un objeto de clase cumple con un protocolo?¿Puede un objeto de clase ObjC ajustarse a un protocolo?
Según entiendo, mediante la creación de +(void)foo
métodos de clase, una instancia de esa clase de objeto tendrá esos métodos como métodos de instancia. Por lo tanto, siempre que creara métodos +(void)foo
para todos los métodos de protocolo requeridos, puedo hacer que un objeto de clase actúe como delegado.
Mi problema, por supuesto, es que en el archivo de encabezado de la clase, solo sé cómo indicar que las instancias de la clase se ajustan al protocolo (como suele ser el caso). Por lo tanto, la mejor que he descubierto es convertir el objeto de clase de este modo:
something.delegate = (id<SomethingDelegate>)[self class]
¿Alguna idea?
relacionada, pero diferente: ObjC: is there such a thing as a "class protocol"?
Aún necesita la sintaxis del puntero. 'Clase *'. –
No necesita la sintaxis del puntero. 'Class' ya es un puntero (se define como' typedef struct objc_class * Class'. Solo lo necesitarías si necesitas un puntero a una clase (que probablemente sea bastante raro). – wbyoung
Nono, quiero decir 'Class' como en marcador de posición, no 'Clase 'como en el tipo real. Creo que leí mal su publicación. –