我想澄清目标 c 中委托和协议的概念。所以有两种类型的协议 1)正式 2)非正式
在正式委托的情况下..如果该人已经定义了协议方法但没有在两者中实际实现它怎么办。即 B 类是 A 的委托,A 有方法 WindowDidMove 作为可选...在这种情况下。会有什么行为???是否必须在 b 类中实现委托功能。我不能只在A中实现它并在我想要的任何地方使用它......相反,不要在A中定义它,并在B或C类或D类中给出单独的实现并使用它们但是我想要......请澄清这一点– @class A;
@protocol ADelegate <NSObject>
@optional
- (BOOL)A:(A *)foo doSumfin:(BOOL)decide;
@end
@interface A : NSObject {
NSString *bar;
id <ADelegate> delegate;
}
@property (nonatomic, retain) NSString *bar;
@property (nonatomic, assign) id <ADelegate> delegate;
- (void)someAction;
@end
另外,线是什么
id <A Delegate > delegate;
@property (nonatomic, assign) id <ADelegate> delegate;
帮助我们实现..
在非正式协议的情况下...如果我不提供方法的实现并仍然调用委托方法...会发生什么。?