代码之家  ›  专栏  ›  技术社区  ›  Chewie The Chorkie

如何在swift中调用子类上的委托函数?

  •  0
  • Chewie The Chorkie  · 技术社区  · 7 年前

    甲级代表。 类与方法有一个协议,我可以通过调用 代表?.myfunc()

    protocol ClassBDelegate: class {
        func myFunc()
    }
    
    class Class B {
        weak var delegate: ClassBDelegate?
        delegate?.myFunc()
    }
    

    但现在 MyFunc() 在类A使用的另一个类(类C)中,但现在我希望类B调用类A的类C实例中的函数。

    怎么做到的?我知道有答案,但也许我不知道该找什么?我希望我能写些 代表?.classc.myfunc() 但它不会让我这么做的。

    2 回复  |  直到 7 年前
        1
  •  2
  •   matt    7 年前

    知道自己的代表是什么并不关B类的事 为了完成它的命令。那就是 指向 身份 代表的。

    作为代表的A级人员将对 myFunc 以某种方式与C类助手交谈。也许那是 它的 代表,我不知道。那没关系。但不要改变B班对情况的了解或说话的方式。

    所以,你需要写一个函数 在A级 你可以叫它C级。如果A类是代理,那么B类不应该知道远端发生了什么。这是一个私有实现细节。

        2
  •  1
  •   Duncan C    7 年前

    协议的全部要点是它使您不必指定特定的 提供服务的。相反,您只需指定某个符合协议的对象提供服务。

    您只需要使您的classa和classb对象具有相同的委托。然后每个人都将直接调用委托。