我有以下代码:
#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
它编译并运行良好。 但是,如果我用替换法的声明:
-(void)request:(ServerRequest*)request gotResponseRecord:(ServerResponseRecord*)response;
-(void)request:(ServerRequest*)request gotError:(NSError*)error;
我得到了意外的语法错误“错误:‘ServerRequest’之前预期‘)’”。 我认为这可能是一个问题的唯一原因是,ServerRequestDelegate.h和ServerRequest.h #IMPORT对方。 不过,我不明白为什么代码工作与(ID)请求#进口线。 我也弄不明白为什么这是一个语法错误。
有人可以提供一个很好的解释?