【问题标题】:Swift custom protocol which calls more than one function调用多个函数的 Swift 自定义协议
【发布时间】:2015-11-14 23:09:12
【问题描述】:

我有一个登录视图控制器。登录完成后,它会自行关闭并调用另一个视图控制器中的函数。在该函数中,有四个不同的函数执行不同的操作。问题是协议同时调用了 4 个函数。那么有没有办法在另一个函数中调用一个特定的函数呢?喜欢;

   func mainfunction(){
            funcOne()
            funcThree()
            funcTwo()
            funcOne()
          }

所以我不想调用所有,而是调用一个。而 mainFunction 是协议的一部分。

谢谢

【问题讨论】:

    标签: ios xcode swift delegates protocols


    【解决方案1】:

    只需扩展您的协议。该协议将拥有全部四个,而不是拥有一个 mainFunction

    @protocol YourProtocol {
    
        func funcOne()
        func funcTwo()
        func funcThree()
        func funcFour()
    }
    

    【讨论】:

    • 感谢您的回答,但有这样的问题。例如在登录视图控制器中; self.delegate.funcOne() 和 self.delegate.funcTwo() 在解雇自己之前调用这些。登录控制器如何知道谁调用了自己以及它应该调用哪些函数......否则,它仍然会同时调用它们
    【解决方案2】:

    如果您在协议声明中添加单独的函数,您将能够单独调用它们(如果它们存在)。

    该协议充当应实施的合同。它为编译器和开发人员提供了一种了解应该可用的方法。这与在 C 头文件中提前声明函数的概念非常相似。在您或其他人实现这些功能之前,这些功能不可用。

    【讨论】:

      猜你喜欢
      • 2018-08-10
      • 1970-01-01
      • 1970-01-01
      • 2013-12-12
      • 1970-01-01
      • 1970-01-01
      • 2018-09-02
      • 2016-11-19
      • 1970-01-01
      相关资源
      最近更新 更多