【问题标题】:Can Subclass use a delegate method of superclass Ios子类可以使用超类Ios的委托方法吗
【发布时间】:2014-04-24 13:07:06
【问题描述】:

是否可以在子类上使用超类的委托

示例:A 类是 B 类的超类,超类 A 使用文本视图方法示例 textviewDidChange。我可以以某种方式在子类 B 上调用超类 A 的 [super textViewDidChange],即使它不在 A 类的头文件中 如果我在子类 B 上重新声明该方法

【问题讨论】:

    标签: ios objective-c uitextviewdelegate


    【解决方案1】:

    当您指定UITextViewDelegate 时,您是在告诉编译器您的class 符合UITextViewDelegate 的规范。如果class A 具有UITextViewDelegate 的所有要求,并且class B 是一个子类,那么它也将具有所有要求。没有什么能阻止您将任何instance 分配为delegate,因此您仍然必须小心。

    【讨论】:

    • 还要确保你指定实现委托方法的类,就像你为超类所做的那样
    • 我不确定我是否理解分配任何实例的委托和 G_Money;s 语句的部分指定实现委托的类对不起英语不是我的第一个我确定你解释得很好但我的语言知识需要更具体,所以你们俩都说如果我在子类中再次有 textfieldDidChange 它会自动从 A 获取所有内容以及你放在 B 上的额外内容?
    • 换句话说,没有检查您所说的委托实例是否实际实现了所有必需的方法。当您将委托指定为 myTextView.delegate = theSubclass 时,编译器假定您知道自己在做什么并且 theSubclass 实际上符合委托规范。
    【解决方案2】:

    是的,你可以。由于 A 类确认 协议,因此无需在头文件中重新声明它们。只要确保它实现了所需的方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-31
      • 2014-03-25
      • 1970-01-01
      相关资源
      最近更新 更多