Pregunta

Actualmente estoy trabajando en un NSProxy subclase que intercepta ciertos mensajes y nunca los reenvía a nadie, sino que simplemente los procesa, por lo que estos métodos nunca existen realmente.Y aquí viene el problema, obviamente el compilador comienza a quejarse de las implementaciones de métodos que faltan y no puedo encontrar cómo detenerlo, agregar métodos stub a la interfaz solo para que el compilador se calle no funciona porque los métodos están formados arbitrariamente y no los conozco de antemano (para hacerlo un poco más específico, estoy pidiendo este proyecto).

Idealmente, me gustaría decirle al compilador que no debería realizar ningún método de verificación para esta clase específica, pero como esto parece bastante improbable, también estaría feliz por una #pragma o de cualquier otra manera (¡que no incluye cerrar el compilador para cada advertencia en todo el proyecto/archivo!)

¿Fue útil?

Solución

Sus declaraciones de cambio no son realmente arbitrarias, simplemente podrían tener una longitud arbitraria.Para una gran cantidad de longitudes, puede continuar y declararlas para beneficio del compilador (y luego obtendrá una verificación de errores, lo cual no sucedería si simplemente desactivara la advertencia).Por ejemplo:

typedef void (^ObjCCaseBlock)();

@interface NSObject ()
- (id)switch;
- (void)case:(NSString*)a :(ObjCCaseBlock)b;
- (void)case:(NSString*)a :(ObjCCaseBlock)b case:(NSString*)a :(ObjCCaseBlock)b;
- (void)case:(NSString*)a :(ObjCCaseBlock)b case:(NSString*)a :(ObjCCaseBlock)b case:(NSString*)a :(ObjCCaseBlock)b;
@end

Repita para tantos niveles como sea posible (y podría agregar niveles si alguna vez se topara con un problema).Es un poco tedioso, pero no difícil.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top