在Swift中,如何像Objective-C定义可选接口?

        最近时间比较充足,心血来潮,想把我们的项目用Swift来实现一下,趁着好好学习一下Swift,好多问题在实施的时候都暴露出来了,今天就是遇到一个问题:我们的导航栏的自定义的导航栏,左右有可能有按钮,有可能没有,按钮的点击事件通过代理方法来暴露,所以,代理方法有时候不需要实现,有时候需要实现,因此,代理方法就必须是可选类型的.在OC实现的时候使用@protocol关键字,但是在Swift里面就不行了.原因如下:

原生的Swift protocol里没有可选项,所有定义的方法都是必须实现的。如果我们想要像Objective-C里那样定义可选的接口方法,就需要将接口本身定义为Objective-C的,也即在protocol定义之前加上@objc。另外和Objective-C中的@optional不同,我们使用没有@符号的关键字optional来定义可选方法:


Swift 版可选实现的协议
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,195评论 4 61
  • 章节导航:Swift开发指南:使用Swift与Cocoa和Objective-C(Swift 4) - 1.入门S...
    Minecode阅读 8,438评论 0 23
  • -1- “秋色是他妈的毛衣,是他爸的秋裤。” 这句话在每年秋意渐浓的季节,都会很自然地浮现在我的脑海里。同时会唤醒...
    文科升阅读 1,755评论 0 5
  • 有一天,你停住脚步回头看,会发现来时的足迹和时光里的那些人永远活在你的生命中。永不褪色。那些曾经的过往,你爱的和深...
    叶熏阅读 1,306评论 0 0
  • “年轻人,不要急于求成、不要好高骛远,幸福都是熬出来的。” 相信你和我一样,经常听一些上了年纪的“成功人士”在我们...
    彭小亮阅读 4,554评论 9 5