在Actionscipt中,Parent表示包含实例的对象.因此,如果汽车有一个轮子,轮子可以告诉汽车向前移动
parent.moveForward
但是,在Obj-C中,parent指的是超类(不确定为什么他们有super和parent意思相同的东西).
我找不到任何等效于Action-script样式的父类,但后来我真的不知道该找什么.有没有一种简单的方法在Obj-C中执行此操作,或者在创建实例时是否必须手动传递对实例的引用?我已经尝试了这个并且它引发了一个错误,但由于我是Obj-C的新手,我只是想确保我采取正确的行动方案.
有趣......我不知道Actionscript以这种方式使用了"parent"这个词.
这里有两个独立的概念:继承和组合.parent
在Objective-C和许多其他面向对象语言中,该术语都用于这两种情况.
在Objective-C中,从另一个继承的类将"其他"类称为其祖先.虽然很多人使用这个词superclass
,但事实上你可以合理地使用这个词parent
.顾名思义,这就是对象"继承".
另一方面,对象"组合"就是你用汽车和车轮的例子所描述的.汽车由几个其他物体组成,其中一个或多个物体是轮子.我必须承认,我并没有经常听到parent
在这种情况下使用的术语来指代汽车.通常,您可能会发现Objective-C世界中的大多数人都会car
通过标签"容器" 识别出来.但是,对于像XML文档这样的树型数据结构,我们经常讨论父节点和子节点.父级包含子级,因此在组合关系中使用"父"一词也是适当的,具体取决于关系的类型.我不认为你会发现很多Objective-C程序员在树形结构之外的组合场景中使用"父"字.
这种区别通常被比作"有一个"与"一个"的关系:身份与占有.在继承中,子元素是其父元素的"子类型".另一方面,在合成中,汽车"具有"轮,或树中的父节点"具有"子节点的集合.
编辑:下面的Kendall Helmstetter-Gelner在与实例和传递引用相关的问题上添加了一些好评.如果您有特定的代码块和特定的错误消息,请随时与他们一起更新您的问题,我们会尽力提供帮助.