i found this line in the init method from an open source project :
AtlasSpriteManager *spriteManager =
(AtlasSpriteManager*)[self getChildByTag:kSpriteManager];
and kSpriteManager = 0;
then spriteManager used for this purpose
AtlasSprite *bird = [AtlasSprite spriteWithRect:
CGRectMake(608,16,44,32) spriteManager:spriteManager];
[spriteManager addChild:bird z:4 tag:kBird];
any idea will be great thank you.
Starting with the first line:
This means that there is a method called
-getChildByTag:which returns a generic child object. Since the returned object is generic (no specific type) it must be cast to the appropriate type before it can be used. I would guess that the method definition looks something like this:Internally, the class would contain an array of generic child objects, and a specific child can be retrieved by calling
getChildByTag:with the appropriate tag.In this case, the programmer knew that the child with tag 0 is an
AtlasSpriteManager, so they simply cast to that type and then used thespriteManageras they normally would.