Normalmente, I (copiar los métodos de Apple) declara protocolos en el encabezado de la clase que interactuará con los delegados de ese protocolo. (Por ejemplo, el archivo de encabezado UIActionSheet contiene la declaración de protocolo para UIActionSheetDelegate). Realmente no importa técnicamente dónde declaras los protocolos, siempre y cuando no tengas una referencia circular de #import
sentencias. Esto normalmente no ocurrirá porque la clase que interactúa con el protocolo lo hace para evitar la necesidad de #import
todas las demás clases que ahora implementarán el protocolo. (UIActionSheet envía mensajes a sus clases cuando se descarta a través del protocolo y, por lo tanto, no necesita Importar ninguna de sus clases)
Si tiene un protocolo y varias clases no relacionadas interactuarán con los delegados de ese protocolo, eso sería un buen indicador para poner el protocolo en su propio archivo, porque el protocolo no está realmente asociado con una clase en particular.