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{

        

    }

  • 相关阅读:
    mysql中IN和EXITS效率
    POJ 3301 Texas Trip
    Swift项目兼容Objective-C问题汇总
    使用linq对字符串1,2,3,4,5,6,7,8,9,10求和
    CodeForces 228D. Zigzag(线段树暴力)
    代理模式
    Oracle成长点点滴滴(3)— 权限管理
    数据结构基础 之 图 的 邻接矩阵实现与邻接表实现
    android CoordinatorLayout使用
    Android开发之蓝牙(Bluetooth)操作(二)--修改本机蓝牙设备的可见性,并扫描周围可用的蓝牙设备
  • 原文地址:https://www.cnblogs.com/dhui69/p/11160074.html
Copyright © 2011-2022 走看看