美文网首页
协议和委托代理

协议和委托代理

作者: zhaihongxia | 来源:发表于2017-06-09 10:52 被阅读0次

1.协议:用于声明专门被别的类实现的方法。协议本身不是类,定义其他类可以实现的接口(方法)

说明:1.一个协议可以扩展自另一个协议,一般扩展自NSObject,需要扩展自多个协议中间用逗号分隔。

            2.修饰协议方法的关键字:@require(必须实现),@optional(可选择实现)。默认是require。

            3.一个类可以实现多个协议。

             4.协议的实现在声明上,不能放到类的实现上(也就是说必须写成@interface Person:NSObject而不能写成@implementation Person)。

              5.协议中不能定义属性、成员变量等,只能定义方法。

作用:1.统一接口

          2.模拟实现多继承(总的来说单继承可以继承父类的属性方法并且不用重写父类方法可以使用。一个类中可以遵守多个协议实现多继承,只能继承方法,并且要重写实现协议方法)

          3.实现委托代理

2.委托:主动方,持有带协议的id指针,可以使用协议

说明:1.代理属性,同时约定作为代理的对象必须实现协议                                      @property(nonatomic,weak) id<协议名字>   delegate;                                                                       id可以表示任何一个Object对象类型。

            2.用weak 修饰id 指针防止循环引用内存泄漏      ,原因:id 指针指的是代理方,委托方在代理方创建对象实现协议方法时会引用计数加1,被代理方所拥有,如果委托方用strong 修饰再拥有代理方就会循环引用                       

3.代理方:被动方,遵从协议,实现协议中的方法

相关文章

  • 协议和委托代理

    1.协议:用于声明专门被别的类实现的方法。协议本身不是类,定义其他类可以实现的接口(方法) 说明:1.一个协议可以...

  • Swift的delegate代理与OC的delegate代理对比

    OC中使用代理 委托方(子控制器)委托方需要实现创建协议 、声明协议方法 创建一个代理属性(weak声明) 执行协...

  • Java代理模式

    代理的实现分为: 1.静态代理实现 2.动态代理 委托类和委托对象:委托类是一个类,委托对象是委托类的实例。代理类...

  • 代理通知Block传值

    三种在类之间传值得方式 (案例传图片) 1.代理 第一步 在委托者(数据的传递着)的.h文件中,设置代理协议和协议...

  • iOS开发基础:协议、代理、block

    一、协议和代理 首先如果要学习协议和代理,要先了解一下什么是协议和代理 协议(protocol) 协议就是定义一个...

  • iOS 代理模式

    代理模式确定委托方和代理者。由委托方制定协议、规范接口。让任意类型的遵守协议的代理方设置为委托方需要的代理者,代理...

  • 4. 代理

    代理是一种设计模式 代理包括委托对象,代理对象,协议3个部分 协议: 就是规则,置顶委托方可以委托的方法,代理方需...

  • iOS 代理模式

    一、何为代理模式? 关键点如下: 协议 :定义代理和委托的共同接口(方法) 委托方 :根据指定的协议,委托代理去完...

  • 代理简记

    Java静态代理 委托类和代理类,实现共同接口 共同接口: 委托类: 代理类: 测试结果: Java动态代理 通过...

  • Objective-C笔记(四)委托-代理模式

    协议委托代理是OC中类之间的一种通信方式委托代理思想:1、定义协议2、生成委托3、代理方法调用 1、定义协议 对于...

网友评论

      本文标题:协议和委托代理

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