我试图弄清楚 .parent 属性在此方法中实现的目的,以及通常调用此属性的“get[ClassNameHere]”方法的目的。
-(HudLayer*) getHud
{
return (HudLayer*)[self.parent.parent.parent getChildByTag:kTagHudLayer];
}
最佳答案
仅仅通过这里显示的这个方法是不可能知道细节的。但是 .parent 确实返回了当前 Cocos 对象作为子对象所属的 Cocos 父对象、 Sprite 或图层。从本质上讲,这段代码表明您有一个子画面或层,其中有一个 child 有更多的 child 和这些 child 的更多 child ,这是一种找出谁是上游的大 parent ,然后从那个 parent 那里得到一个新 child 的方法.
就我个人而言,这似乎很草率。我自己永远不会那样编码。难以阅读(如您所见)并且像这样将如此多的父属性串在一起为错误打开了很大的空间。如果顶层 parent 做它需要做的事情而不是远方的孙子爬上链条会更明智;它会稍微破坏 MVC 模型来执行此操作,如下所示。
关于objective-c - 这个 Mtd 中的 .parent 的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10020630/