i don´t understand how use delegation pattern in obj-c. have class: diggamecontrollayer.h , in it´s header define protocol 1 required method users of class needs implement. create delegate property use within code other property delegate responsibility of moveobjecttoposition: method should do. far hope.
//diggamecontrollayer.h @protocol diggamecontrollayerdelegate <nsobject> -(void) moveobjecttonewposition: (ccsprite *)object atspeed:(float)movespeed; @end @property (assign) id <diggamecontrollayerdelegate> delegate; then class using class (in case digcharacter) says adheres diggamecontroldelegate protocol
@interface diggoblinplayer : digcharacter <diggamecontrollayerdelegate> but don´t understand initialize , set delegate property declared? cause nothing when use in diggamecontrollayer since it´s null
[self.delegate moveobjecttonewposition:object atspeed:movespeed];
you can pass delegate in init method so:
diggoblinplayer* player; player = [[diggoblinplayer alloc] initwithname:(nsstring*)name delegate:self]; or set separately:
diggoblinplayer* player; player = [[diggoblinplayer alloc] initwithname:(nsstring*)name]; player.delegate = self; which style choose depends on if want/need delegate, or if want able change/reset later on.
in cases don't want delegate public property; you'd use first style.
you see lot of example of in ios sdk here.
note self --which example, , other object of course-- needs implement delegate. , name made up.
Comments
Post a Comment