这个Mtd的目的是什么?

时间:2012-04-04 23:22:50

标签: objective-c ios cocos2d-iphone

我试图找出.parent属性在此方法中实现的目的以及通常调用此属性的“get [ClassNameHere]”方法。

-(HudLayer*) getHud
{
return (HudLayer*)[self.parent.parent.parent getChildByTag:kTagHudLayer];
}

2 个答案:

答案 0 :(得分:2)

这里显示的方法不可能知道细节。但.parent确实返回当前cocos对象作为子对象所属的Cocos父级,子级或子级。基本上这段代码表明你有一个精灵或图层,其子女有更多的孩子和更多孩子,这是一种方法,可以找出流中的大父母是谁,然后从那个父母那里得到一个新的孩子

就我而言,个人看起来很草率。我自己从不以这种方式编码。难以阅读(正如你所看到的)并且拥有如此多的父级属性就像这样为bug提供了大量空间。如果最高的父母做了它需要做的事情而不是一个遥远的孙子上升,那将更加明智;它打破了MVC模型,如图所示。

答案 1 :(得分:1)

可能类HudLayer具有parent属性,指向同一类型的另一个对象,因此具有指向另一个HudLayer的parent属性,依此类推,爬上三个级别。然后它只向它发送一条getChildByTag消息。