IOS 代理模式 DELEGATE

Posted Sallet

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IOS 代理模式 DELEGATE相关的知识,希望对你有一定的参考价值。

代理模式:将我(类或结构体)需要来完成的工作交给另一个具备我所要求的能力的人(实现协议的对象)来执行

协议:具备哪些能力

 

例子:我要去买火车票,没时间买,委托黄牛买票

协议:买票

 

//: Playground - noun: a place where people can play

import UIKit


protocol BuyTicketProtocol {
    // 买票的需求---实际是我需要做的事情
    func buyTicket ()-> AnyObject;
}

class MyTicket{
    var delegate: BuyTicketProtocol? //我不想自己去买,找个代理,只要满足了买票的需求就可以
    
    func getTicket() -> AnyObject {
        return delegate!.buyTicket()
    }
    
}

class ZhongJie: BuyTicketProtocol {
    
    func buyTicket() -> AnyObject {
        //随便返回一个对象
        return NSDate()
    }
}

let myTicket = MyTicket()
myTicket.delegate = ZhongJie()

myTicket.getTicket()

  更多的是在实现协议的类中为委托类(雇主)委托对象(代理)赋值,实现方式是通过页面跳转将委托类传递到实现协议的类中,获取代理,进行赋值

 

以上是关于IOS 代理模式 DELEGATE的主要内容,如果未能解决你的问题,请参考以下文章

IOS开发-UI学习-delegate(代理)的使用

【iOS】协议(Protocol)和代理(Delegate)

Swift语言精要 - 浅谈代理模式(Delegate)

iOS 中delegate的理解与使用(传值)

iOS 委托代理与协议(Delegate and Protocol)

iOS开发Delegate,Notification,Block使用心得