zoukankan      html  css  js  c++  java
  • Swift 协议protocol

    // associatedtype 关键字 用来声明一个类型的占位符作为协议定义的一部分

    protocol LXFViewModelType {

        associatedtype Input

        associatedtype Output

        

        func transform(input: Input) -> Output

    }

    /*

     定义协议时候,协议后面最好跟上class

     delegate的属性最好用weak,用于防止循环引用

     */

    protocol BuyTicketDelegate : class{

        func buyTicket()

    }

     

    class Person22{

        weak var delegate:BuyTicketDelegate?

        

        func gotoBeiJing() {

            delegate?.buyTicket()

        }

    }

     

     

    /*

     定义可选类型的协议

     optional属于OC特性,如果协议中油可选的方法,那么必须在protocol前面加上@objc,也需要在optional前面加上@objc

     */

    @objc protocol TestProtocol{

        @objc optional func test()

    }

     

    class Dog:TestProtocol{

        

    }

  • 相关阅读:
    总结类初始化时的代码执行顺序
    Calcite数据源适配器对时间字段的操作问题
    如何自定义一个Calcite对Tablesaw查询的适配器
    Redis集群 Redis Cluster
    培养代码逻辑
    在线查看office文件的两种方法
    WPF Prism框架合集(9.Dialog)
    WPF Prism框架合集(8.Navigation)
    WPF Prism框架合集(7.Mvvm)
    springboot @OneToOne 解决JPA双向死循环/返回json数据死循环
  • 原文地址:https://www.cnblogs.com/dhui69/p/11160074.html
Copyright © 2011-2022 走看看