Tengo el siguiente código:Objective-C import bucle
#import <Foundation/Foundation.h>
#import "ServerRequest.h" // works even though this line is included
#import "ServerResponseRecord.h"
@protocol ServerRequestDelegate<NSObject>
-(void)request:(id)request gotResponseRecord:(ServerResponseRecord*)response;
-(void)request:(id)request gotError:(NSError*)error;
@end
Se compila y funciona muy bien. Sin embargo, si se sustituyen las declaraciones de métodos con:
-(void)request:(ServerRequest*)request gotResponseRecord:(ServerResponseRecord*)response;
-(void)request:(ServerRequest*)request gotError:(NSError*)error;
me sale el error de sintaxis inesperado "Error: se esperaba ')' antes 'ServerRequest'". La única razón por la que puedo pensar que esto podría ser un problema es que ServerRequestDelegate.h y ServerRequest.h # importan entre sí. Sin embargo, no entiendo por qué el código funciona con la solicitud #import line with (id). Tampoco entiendo por qué es un error de sintaxis.
¿Alguien puede dar una buena explicación?
http://stackoverflow.com/questions/10019961/objective-c-class-directive-before-interface tiene un ejemplo explícito de un ciclo de importación y cómo evitarlo usando '@ class'. – bbum