私は、次のコードを持っている:それはコンパイルし、正常に動作Objective-Cの#importをループ
#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#が互いに衝突することです。しかし、(id)要求で#import行でコードが動作する理由はわかりません。私はまた、それが構文エラーである理由を理解していません。
誰かが良い説明をしてくれますか?
http://stackoverflow.com/questions/10019961/objective-c-class-directive-before-interfaceには、インポートループの明示的な例と、 '@ class'を使用して回避する方法があります。 – bbum