美文网首页
iOS之扩展和代理

iOS之扩展和代理

作者: 賣女孩的小火柴 | 来源:发表于2020-11-18 09:04 被阅读0次

扩展

Q:我们一般用扩展做什么?

A:声明私有属性,声明私有方法(没什么意义),声明私有成员变量

Q:扩展的特点

A:编译时决议,只能以声明的形式存在,多数情况下寄生在宿主类的.m中,不能为系统类添加扩展。

扩展

注意:类扩展得到的属性和方法,都是私有的!在外界中无法直接使用,即无法直接get后者set到这些成员。但是可以在.h里提供方法接口来改变这些私有属性的情况。

代理

代理是一种设计模式,以@protocol形式体现,一般是一对一传递。一般以weak关键词以规避循环引用。

Q:代理的组成?

A:代理对象、委托者、协议三部分组成。

    协议:用来指定代理双方可以做什么,必须做什么。

    代理:根据指定的协议,完成委托方需要实现的功能。

    委托:根据指定的协议,指定代理去完成什么功能。

Q:为什么我们设置代理属性都使用weak呢?

A:我们定义的指针默认都是__strong类型的,而属性本质上也是一个成员变量和set、get方法构成的,strong类型的指针会造成强引用,必定会影响一个对象的生命周期,这也就会形成循环引用。

相关文章

  • iOS之扩展和代理

    扩展 Q:我们一般用扩展做什么? A:声明私有属性,声明私有方法(没什么意义),声明私有成员变量 Q:扩展的特点 ...

  • Java多态实现的关键

    这里也是扩展篇之动态代理里面的内容,也是单独把它拿出来了,详细的可以去看扩展篇之动态代理。 这里就涉及到java的...

  • iOS的扩展&代理&通知

    扩展(Extension) 一般用扩展来做什么? 1.声明私有属性,是可以不对子类暴露的。2.声明私有方法,方便阅...

  • 【iOS扩展开发攻略】Share Extension

    1. 什么是扩展? 扩展( Extension )是 iOS 8 中引入的一个非常重要的新特性。扩展让 app 之...

  • 类别(Category)与类扩展 (Extension)的区别

    类别(Category)与类扩展 (Extension)的区别 iOS 类别和扩展(Categories和Exte...

  • 静态代理与动态代理

    静态代理不侵入源代码的前提下扩展原功能。但是扩展性差。静态代理一个代理类只能服务于一个被代理类,并且当被代理类扩展...

  • 代理模式

    定义和类型 使用场景 优点 缺点 扩展 Spring 代理 代理速度对比 相关设计模式 2 实战 2.1 静态代理...

  • iOS 8新特性之扩展

    iOS8之Extension 区别类的扩展 @interface MyClass : NSObject - (fl...

  • java 代理模式详解

    简介 代理是什么? 代理也称“委托”,分为静态代理和动态代理,代理模式也是常用的设计模式之一,具有方法增强、高扩展...

  • iOS 通知扩展

    级别: ★★☆☆☆标签:「iOS通知扩展」「iOS推送扩展」「UNNotificationServiceExten...

网友评论

      本文标题:iOS之扩展和代理

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