我不完全理解如何在 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];