Синтаксис для создания Представления Представления в Objective C - PullRequest
3 голосов
/ 14 ноября 2008

Я пытаюсь создать протокол делегата для пользовательского UIView. Вот моя первая попытка:

@protocol FunViewDelegate
@optional
- (void) funViewDidInitialize:(FunView *)funView;
@end


@interface FunView : UIView {    
@private
}

@property(nonatomic, assign) id<FunViewDelegate> delegate;

@end

Это не работает, потому что интерфейс FunView не был объявлен во время объявления FunViewDelegate. Я попытался добавить прототип ала C ++ до @protocol:

@interface FunView;

Но это просто сводит с ума компилятор. Как мне это сделать?

Ответы [ 2 ]

10 голосов
/ 15 ноября 2008

Синтаксис прямого класса @class Foo;, а не @interface Foo;.

9 голосов
/ 15 ноября 2008

Казалось бы, вы можете объявить протоколы вперед:

@protocol FunViewDelegate;

@interface FunView : UIView {    
@private
    id<FunViewDelegate> delegate;
}
@property(nonatomic, assign) id<FunViewDelegate> delegate;
@end

@protocol FunViewDelegate
@optional
- (void) funViewDidInitialize:(FunView *)funView;
@end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...