不使用@objc 的 swift 中的可选协议方法

阿希斯拉哈

在swift中使用@objc,我们可以在协议中创建一个可选的方法,比如

@objc protocol MyProtocol {
  @objc optional func anOptionalMethod()
}

但是如何在不使用 @objc 的情况下创建可选的协议方法?

特雷克斯

您可以通过以下方式定义默认的 func 实现:

protocol Opt {
    func requiredFunc()
    func optionalFunc()
}

extension Opt {
    func optionalFunc() {}
}

有了这个,你不必在符合 Opt 的类中实现 optionalFunc(),因为它们已经有了它们的默认实现。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

不带objc的协议中的Swift可选方法

在子类中未调用Swift 3 ObjC可选协议方法

Swift协议可选函数中如何使用枚举作为参数

Swift中的ObjC协议实现

如何在Swift协议中定义可选方法?

检查是否在Swift中实现了可选的协议方法?

在Swift中使用Comparable扩展@objc协议

在Swift中使用Hashable扩展@objc协议

某些iOS框架如何使用不带@objc的可选内容定义Swift协议?

带有可选变量CGFloat的Swift @objc协议?

Objc中定义的枚举>在Swift中声明>在Objc中使用

非“ @objc”方法不满足“ @objc”协议的可选要求

Swift编译器在@objc协议中的associatedtype崩溃

'textFieldDidBeginEditing'与Swift中协议'UITextFieldDelegate'的可选要求'textFieldDidBeginEditing'几乎匹配

Swift可选协议行为中的不一致

为什么协议的关联类型在Swift中不使用通用类型语法?

Swift中使用ObjC编写的消除歧义的重写方法

在Swift 3.0中使用可选和不使用可选来声明非赋值变量有什么区别

在Swift中动态实例化ObjC类(使用NSClassFromString?)

在协议中使用通用方法Swift

Swift:设置协议的可选属性

如何在Swift中对SKPSMTPMessageDelegate使用协议?

使用错误委托中的方法进行Swift协议扩展仍然有效(?!)

Swift类“未实现(objc)协议”

@objc协议使Swift编译器崩溃

错误桥接Obj-C代码和Swift:方法“ Z”提供的方法“ U”与协议“ Y”中的可选需求方法“ X”冲突

Swift 协议中默认参数的替代方法

子类中的Swift覆盖协议方法

Xcode中的自动实现Swift协议方法