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?

questionAnswers(2)

yourAnswerToTheQuestion