No se puede encontrar la declaración de protocolo para

Tengo dos objetos, ambos de los cuales son controladores de vista. El primero (lo llamaré viewController1) declara un protocolo. El segundo (que, como es lógico, denominaré viewController2) se ajusta a este protocolo.

XCode me da un error de compilación de: 'No se puede encontrar la declaración de protocolo para viewController1'

He visto varias preguntas sobre este tema y estoy seguro de que tiene que ver con un error de bucle, pero simplemente no puedo verlo en mi caso ...

Código abajo ...

viewController1.h

<code>@protocol viewController1Delegate;

#import "viewController2.h"

@interface viewController1 {

}

@end

@protocol viewController1Delegate <NSObject>

// Some methods

@end
</code>

viewController2.h

<code>#import "viewController1.h"

@interface viewController2 <viewController1Delegate> {

}

@end
</code>

Inicialmente, tenía la línea de importación en viewController1 por encima de la de la declaración de protocolo. Esto impedía que el proyecto se construyera en absoluto. Después de buscar en SO, me di cuenta del problema y cambié las dos líneas. Ahora recibo una advertencia (en lugar de un error). El proyecto construye bien y en realidad funciona perfectamente. Pero sigo sintiendo que debe haber algo mal para recibir una advertencia.

Ahora, por lo que puedo ver, cuando el compilador llega a viewController1.h, lo primero que ve es la declaración del protocolo. Luego importa el archivo viewController.h y ve que esto implementa este protocolo.

Si los compilara al revés, primero vería viewController2.h, y lo primero que haría sería importar viewController1.h cuya primera línea es la declaración de protocolo.

¿Me estoy perdiendo de algo?

Respuestas a la pregunta(3)

Su respuesta a la pregunta