Ios 在子类中使用视图的xcode

Ios 在子类中使用视图的xcode,ios,xcode,subclassing,Ios,Xcode,Subclassing,我正在学习编写iphone的程序,我想画一些画。我遵循了一些示例代码,对viewcontroller进行了子类化,它运行良好。现在,当我想扩展程序时,我遇到了一个设计问题,我需要一些帮助 我使用mynewview为myviewcontroller创建子类。如果我在myviewcontroller中有任何代码,我如何在mynewview中调用或引用它,反之亦然?我不确定我的要求是否正确,但我试图理解类和子类之间的关系。Objective-C对象受益于继承。所有类都是NSObject的子类,因此可以

我正在学习编写iphone的程序,我想画一些画。我遵循了一些示例代码,对viewcontroller进行了子类化,它运行良好。现在,当我想扩展程序时,我遇到了一个设计问题,我需要一些帮助


我使用mynewview为myviewcontroller创建子类。如果我在myviewcontroller中有任何代码,我如何在mynewview中调用或引用它,反之亦然?我不确定我的要求是否正确,但我试图理解类和子类之间的关系。

Objective-C对象受益于继承。所有类都是NSObject的子类,因此可以对任何对象调用init。如果您创建了一个自定义类并给它一个方法doSomethingAwesome,那么您就可以在自定义类的任何子类中实现doSomethingAwesome。但是,在子类中声明方法不会将该方法添加到超类中。另一方面,我很少发现自己将自己的自定义类划分为子类。我认为,我们鼓励保持所谓的浅层对象层次结构。通常我会对stock cocoa类进行子类化,根据自己的需要进行自定义。如果我需要在多个子类中使用自定义方法,我会在超类上声明一个类别,而不是依赖继承来提供自定义行为。Objective-C中的消息传递系统是动态的。每个对象都包含一个结构,其中包含运行时用于内省的信息。在这里,运行时将找到对象能够响应的方法列表。那么,假设您发送了这样一个实例:

[mynewview someMethod];
运行时将首先检查对象信息,以试图找到能够响应消息的方法。如果未找到任何内容,则将查询超类,依此类推。事实上,运行时要复杂得多,它将为任何对象提供更多的响应机会,这就是动态部分。例如,mynewview可能没有任何名为someMethod的方法,但可能能够满足该调用,但您现在可能不想担心这一点

在子类中,您可以使用键盘super调用给定方法的超类实现,因此,如果mynewview是myviewcontroller的子类,您可以使用以下命令从mynewview调用myviewcontroller实现:


如果myviewcontroller和mynewview中都存在someMethod,则运行时将自动仅调用子实现,如果必须从子实现调用父实现,则必须调用父实现

谢谢你快速而有用的回答。我想这帮了大忙汉克斯,这帮了大忙,我只需要朝正确的方向轻推一下
[super someMethod];