Objective-C #import-Schleife

Ich habe folgenden Code:

#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

Es kompiliert und läuft gut. Wenn ich jedoch die Methodendeklarationen durch Folgendes ersetze:

-(void)request:(ServerRequest*)request gotResponseRecord:(ServerResponseRecord*)response;
-(void)request:(ServerRequest*)request gotError:(NSError*)error;

Ich erhalte den unerwarteten Syntaxfehler "error: expected ')' vor 'ServerRequest'". Der einzige Grund, aus dem ich annehmen kann, dass dies ein Problem sein könnte, besteht darin, dass ServerRequestDelegate.h und ServerRequest.h # sich gegenseitig importieren. Ich verstehe jedoch nicht, warum der Code mit der Zeile #import with (id) request funktioniert. Ich verstehe auch nicht, warum es ein Syntaxfehler ist.

Kann jemand eine gute Erklärung liefern?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage