• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

iOS 记录之 Swift协议可选方法(多环境)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

阐述

新公司,新层次,接触到新的东西。进入喜马后,由于主站APP与当前APP技术基础不太一致,
故代码从设计时就需要考虑同时支持两种环境(Objective-C与Swift)。

之前呢,只是单纯为指定环境开发,如在Swift环境下以Swift为主设计并封装代码。
一般来说也就是说单纯使用 Swift 的 Protocol 进行相互的约定。现在则需要考虑一下,如何反相支持Objective-C了。

记录

1 只针对Swift环境
通过给 Protocol 添加 extension 默认方法实现的方式,实现可选效果。这样遵守协议的类无需实现可选方法。
(不过本质上还是通过 extension 实现了协议对应方法)

2 支持Swift环境和Objective-C环境
通过使用@objc 修饰 Protocol, 并且在要省略的方法前加 @objc optional 来实现可选效果。

注意:
1 使用 @objc 修饰的 Protocol 只能被class实现了,对于struct 、enum 类型来说就不支持了。

2 @objc optional 修饰的范围只能是当前行(如果当前行后续无内容,则延伸至下一行,不会同时修饰多行函数)

资料

1 https://www.jianshu.com/p/66ec104668b0
2 https://swifter.tips/objc-protocol/


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap