我目前正在从一本书中学习Objective-c。在一个示例中,在特定头文件的类接口之前,它读取@class
,然后是两个协议声明。
@class Thing;
@protocol Foo
-(void)foo:(Thing *);
@end;
@protocol Bar
-(void)bar:(Thing *);
@end;
@interface Thing : NSObject <Foo, Bar>
...
我知道@class
用于阻止循环引用,但是我不明白下面会发生什么。为什么协议在那里声明,而不是在@interface
块中?
答案 0 :(得分:0)
他们是宣布正常还是向前宣布?
在前一种情况下,它只是一个自定义协议的声明,它可能由下面定义的类使用(例如。@interface MyClass : Object<MyProtocol>
。否则,它是一个前向声明,需要相同的特定原因。集体前瞻性声明。