我不完全理解如何在 obj-C 中使用委托模式。基本上我有一个类:DigGameControlLayer.h
在它的标题中,我定义了protocol
一个该类的所有用户都需要实现的必需方法。然后我创建delegate
我在代码中使用的属性,就像任何其他属性一样,以委派moveObjectToPosition:
方法应该做什么的责任。到目前为止一切顺利,我希望。
//DigGameControlLayer.h
@protocol DigGameControlLayerDelegate <NSObject>
-(void) moveObjectToNewPosition: (CCSprite *)object atSpeed:(float)moveSpeed;
@end
@property (assign) id <DigGameControlLayerDelegate> delegate;
然后使用该类的类(在本例中为 DigCharacter)说它遵守DigGameControlDelegate
协议
@interface DigGoblinPlayer : DigCharacter <DigGameControlLayerDelegate>
但我不明白的是我在哪里初始化并设置delegate
声明的属性?因为目前它在我使用它时什么都不做,DigGameControlLayer
因为它是空的
[self.delegate moveObjectToNewPosition:object atSpeed:moveSpeed];