@class с декларациями протокола внизу? - PullRequest
0 голосов
/ 02 апреля 2012

Я сейчас изучаю цель-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 голосов
/ 02 апреля 2012

Они объявлены нормально или форвард объявлен?

В первом случае это просто объявление пользовательского протокола, который, вероятно, используется классом, который определен ниже (например, @interface MyClass : Object<MyProtocol>. В противном случае это предварительное объявление, необходимое по той же конкретной причине пересылки класса декларация.

...