美文网首页
如何在Swfit中定义可选方法

如何在Swfit中定义可选方法

作者: fever105 | 来源:发表于2016-03-09 20:35 被阅读123次

    如何在Swfit中定义可选方法


    可选方法的声明

    Swfit中的所定义的协议,一旦遵守必须实现所有协议方法,如果做到OC一样定义可选方法呢?

    • 声明协议时前面加上@objc,表示这是一个OC类型的协议,这个协议可以只能被OC的类所遵守,OC类型的协议所继承

    • 另外,可选方法前像OC一样加上optinal即可

      /*
      注意,@objc
      */
      @objc protocol KLXMultiDropDownMenuDelegate: NSObjectProtocol {
          // 每次展开/收起之前调用,通过multiDropDownMenu.bounds.height获取展开/收起后的高度
          /*
          注意optional修饰
         */
          optional func multiDropDownMenuWillChangeBounds(multiDropDownMenu: KLXMultiDropDownMenu)
      }
      

    执行可选方法

    • 执行可选方法前,要向OC一样对其进行判断方法就是函数指针,判断其是否为nil即可

      /*
      如果代理实现了可选方法(方法不为nil),就执行
      */
      if self.delegate?.multiDropDownMenuWillChangeBounds != nil {
          self.delegate?.multiDropDownMenuWillChangeBounds!(self)
       }
      

    总结

    • 对于Swift类型的协议,其所有方法都是必选方法,一旦遵守必须实现
    • @objc修饰的协议是OC类型的协议,可以定义可选方法(PS:UIKit / Foundation框架内的协议都是OC类型的协议)

    相关文章

      网友评论

          本文标题:如何在Swfit中定义可选方法

          本文链接:https://www.haomeiwen.com/subject/qpctlttx.html