Veo una gran cantidad de código como el siguiente en los últimos tiempos:¿Cómo funciona un protocolo en una variable de instancia en Objective-C?
id<foo> aBar;
Normalmente esto es algo que vería en una declaración de la clase, tales como:
@interface bar : UIViewController <UITableViewDelegate, UITableViewDataSource>
¿La media superior que aBar podría ser una instancia de la barra de clases y promete tener todos los métodos declarados en el protocolo foo?
Cree que puede haber algún intercambio 'foo' y 'barra' en la pregunta y respuesta. Su clase 'bar' no adopta el protocolo foo, por lo que el compilador se quejaría de almacenar una instancia de 'bar' en 'aBar' tal como está escrito. –
No creo que haya ningún intercambio, pero tiene razón acerca de que la clase de barra no se ajusta al protocolo foo. Creo que su último párrafo explica por qué lo escribió de esa manera, sin embargo. –