objective-c - 这个 Mtd 中的 .parent 的目的是什么?

标签 objective-c ios cocos2d-iphone

我试图弄清楚 .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/

相关文章:

objective-c - ios 当文本字段等于字符串时制作按钮更改 View

ios - 如何控制UIView动画的速度?

ios - 动态改变 objective-c 中单元格的高度

iphone - 平铺作为纹理图集一部分的图像

objective-c - main() 未在非并发 NSOperation 中调用

ios - iOS 上 64 位的 BOOL

ios - 如何从以编程方式制作的按钮设置转场

ios - 如何禁用 iPhone 6 原始分辨率?

iPhone:学习Cocos2D项目

objective-c - 是什么导致 SIGSEGV 使用 block ?