0

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

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

2 回答 2

2

仅从此处显示的此方法无法了解详细信息。但是 .parent 确实返回了当前 cocos 对象作为子对象所属的 Cocos 父级、精灵或图层。本质上,这段代码建议您有一个子画面或图层,该子画面有更多的孩子和这些孩子的更多孩子,这是一种找出流上游的大父母是谁,然后从该父母那里得到一个新孩子的方法.

就我个人而言,这似乎很草率。我自己永远不会那样编码。难以阅读(如您所见)并且像这样将如此多的父属性串在一起为错误打开了很多空间。如果最重要的父母做它需要做的事情,而不是一个遥远的孙子沿着链条上升,那会更明智。这样做会破坏 MVC 模型,如下所示。

于 2012-04-05T04:09:24.890 回答
1

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

于 2012-04-05T01:09:19.400 回答