协议功能在单独的文件中

时间:2018-05-08 11:16:27

标签: ios iphone swift

我正在尝试组织我的项目,我想知道是否可以解释什么是可能的:让我说我有一个协议,它有10个函数的定义,其中一些用于在两者之间传输数据查看控制器(委托)。

现在,当我使视图控制器符合该协议时,我需要定义所有这些函数,使得我的视图控制器加载了代码。我想知道的是,如果它可以为例如Service创建一个单独的类,那么使该类符合该协议,并且在我的视图控制器中,我只需要调用Service.nameOfFunction()。

我不知道如何使用委托,例如,如果有一个使用MapView的函数,我需要将它作为参数,但在另一个视图控制器中我不会这样做。有一个MapView所以在调用函数时我会将参数放入什么?

我知道这有点令人困惑,但我希望你明白。

3 个答案:

答案 0 :(得分:0)

只需在方法声明中为参数设置默认值即可。 在调用函数时,您可以传递值或跳过它。如果传递了一个值,那么将在方法中覆盖该值。

答案 1 :(得分:0)

您将在swift协议中创建可选功能,例如 `

@objc protocol MyProtocol {

    @objc optional func doSomething()

}

class MyClass: MyProtocol {

    // no error

}` 

无需确认可选方法。

答案 2 :(得分:0)

protocol SomeProtocol { 
  func someProtocolMethod()
}

extension SomeProtocol {
  func someProtocolMethod() {
    // Default impl here (also can leave empty) (*)
  }
}

class SomeClass: SomeProtocol {
  // Currently have default implementation of someProtocolMethod -> (*)
}
相关问题