2011-01-25 12 views
8

en un archivo de cabecera que tienen algo así como:declara una referencia directa al bloque typedef?

typedef void (^MyBlock)(void); 

necesito usar esa misma referencia exacta en otro archivo de cabecera.

Claro, puedo #import un archivo de encabezado en otro, o incluir el typedef en el encabezado precompilado global, pero en su lugar hay una manera de reenviar la referencia del bloque typedef?

+0

Quiere decir de la misma manera que puede reenviar declarar clases y protocolos con '@ class MyClass;' y '@protocol MyProtocol;' ¿correcto? – Rivera

+0

@Rivera Creo que sí –

Respuesta

9

No sé, lo pondría en un encabezado compartido e incluirlo donde se necesita.

+0

Eso es lo que hice: creé un archivo de encabezado que solo tiene el typedef y simplemente importo ese encabezado en los otros archivos de encabezado. Gracias! –

+0

Tener un encabezado solo para el bloque parece extraño. No hay nada más que el bloque esté más "unido" al que pertenece en un encabezado con? –

+0

Es utilizado por algunas clases diferentes: dos de las cuales no se conocen entre sí, y uno de los padres que usa esas dos. Además, si lo considera como un tipo, tiene sentido definirlo en su propio encabezado. Como estoy importando este encabezado (el que tiene typedef) en otros archivos de encabezado, es bueno que el alcance de typedef-header sea muy pequeño. –