iOS继承具有协议的类

iOS继承具有协议的类,ios,delegates,protocols,Ios,Delegates,Protocols,所以我有一个名为“DrawOnImageViewController”的类,它做了一些非常明显的事情。在它的头文件中,我还有一个协议“DrawOnImageDelegate”,它由一个方法定义:“ImageDrawingSelected:(UIImage*)image”。这个类显然还有一个符合该协议的“委托”属性 现在我需要对这个类进行子类化,这样我就可以简单地调用ViewWillEnglish中委托的委托方法。我对上述类进行了子类化,然后覆盖了ViewWill,如下所示: -(void)vie

所以我有一个名为“DrawOnImageViewController”的类,它做了一些非常明显的事情。在它的头文件中,我还有一个协议“DrawOnImageDelegate”,它由一个方法定义:“ImageDrawingSelected:(UIImage*)image”。这个类显然还有一个符合该协议的“委托”属性

现在我需要对这个类进行子类化,这样我就可以简单地调用ViewWillEnglish中委托的委托方法。我对上述类进行了子类化,然后覆盖了ViewWill,如下所示:

-(void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];
    [self.delegate imageWithDrawingSelected:self.imageView.image];
}
执行此方法(ViewWillEnglish),但从未调用我的委托的委托方法。 我试着调用:[super.delegate imagedrawingselected:super.imageView.image]

但这也不行


请帮忙。提前感谢。

这是最明显、最常见的一种疏忽。我未能设置委托属性。我会羞愧地低下头


它显示在一个popover控制器中,为该控制器设置了委托,但未设置内容视图控制器

您是否验证了
self.delegate
在这一点上是非零的?@HackyStack好吧,消息
nil
不会崩溃,Objective-C不是Java。为什么为空?我在实例化该子类时设置了该子类的delegate属性…检查在创建该子类的对象时是否设置了该对象。delegate=anotherobject;如果这样做了,它不应该为委托返回nil。如果情况并非如此,那么请确保您没有错误地将self.delegate=nil设置在类中的任何其他位置。对不起,我是个白痴。它出现在一个popover控制器中,它是我设置的popover委托,而不是子类。对不起,我知道了。谢谢你的帮助!我们都会犯错,不用担心!:)对未来的好建议:如果一些简单的事情不起作用,睡一觉,你明天就能明白了:)