Pętla #importowa Objective-C
Mam następujący kod:
#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
Kompiluje się i działa dobrze. Jeśli jednak zastąpię deklaracje metod:
-(void)request:(ServerRequest*)request gotResponseRecord:(ServerResponseRecord*)response;
-(void)request:(ServerRequest*)request gotError:(NSError*)error;
Otrzymuję nieoczekiwany błąd składniowy „error: expected”) 'przed' ServerRequest '”. Jedynym powodem, dla którego myślę, że może to być problem, jest to, że ServerRequestDelegate.h i ServerRequest.h #importują się. Nie rozumiem jednak, dlaczego kod działa z linią #import z żądaniem (id). Nie rozumiem też, dlaczego jest to błąd składniowy.
Czy ktoś może przedstawić dobre wyjaśnienie?