我正在尝试组织我的项目,我想知道是否可以解释什么是可能的:让我说我有一个协议,它有10个函数的定义,其中一些用于在两者之间传输数据查看控制器(委托)。
现在,当我使视图控制器符合该协议时,我需要定义所有这些函数,使得我的视图控制器加载了代码。我想知道的是,如果它可以为例如Service创建一个单独的类,那么使该类符合该协议,并且在我的视图控制器中,我只需要调用Service.nameOfFunction()。
我不知道如何使用委托,例如,如果有一个使用MapView的函数,我需要将它作为参数,但在另一个视图控制器中我不会这样做。有一个MapView所以在调用函数时我会将参数放入什么?
我知道这有点令人困惑,但我希望你明白。
答案 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 -> (*)
}