我正在尝试为自定义UIView创建委托协议。这是我的第一次尝试:
@protocol FunViewDelegate
@optional
- (void) funViewDidInitialize:(FunView *)funView;
@end
@interface FunView : UIView {
@private
}
@property(nonatomic, assign) id<FunViewDelegate> delegate;
@end
这不起作用,因为在FunViewDelegate声明时尚未声明FunView接口。我试过在@protocol之前添加一个原型ala C ++:
@interface FunView;
但这只会驱动编译器。我该怎么做?
答案 0 :(得分:10)
转发类语法为@class Foo;
,而不是@interface Foo;
。
答案 1 :(得分:9)
您似乎可以转发声明协议:
@protocol FunViewDelegate;
@interface FunView : UIView {
@private
id<FunViewDelegate> delegate;
}
@property(nonatomic, assign) id<FunViewDelegate> delegate;
@end
@protocol FunViewDelegate
@optional
- (void) funViewDidInitialize:(FunView *)funView;
@end