@class下面有协议声明?

时间:2012-04-02 04:01:42

标签: objective-c class interface protocols

我目前正在从一本书中学习Objective-c。在一个示例中,在特定头文件的类接口之前,它读取@class,然后是两个协议声明。

@class Thing;

@protocol Foo
-(void)foo:(Thing *);
@end;

@protocol Bar
-(void)bar:(Thing *);
@end;

@interface Thing : NSObject <Foo, Bar>
...

我知道@class用于阻止循环引用,但是我不明白下面会发生什么。为什么协议在那里声明,而不是在@interface块中?

1 个答案:

答案 0 :(得分:0)

他们是宣布正常还是向前宣布?

在前一种情况下,它只是一个自定义协议的声明,它可能由下面定义的类使用(例如。@interface MyClass : Object<MyProtocol>。否则,它是一个前向声明,需要相同的特定原因。集体前瞻性声明。