iOS 类别与扩展 geekband

类别Categroy

  • 类别支持在没有源代码的情况下,基于某些特定额场合,为一个类增加功能
    可以添加
    类方法
    实例方法
    重写基类方法

不可以添加
属性
实例变量
已存在的同名方法

  • 命名规范
    文件名称:类别+扩展方法:如 NSString +Deawing.h/.m

使用类别

-使用场景
适合没有源代码的情况下,向已经封住的类中添加方法
为一个类在某些特殊场景下增加功能
对于复杂的大型文件分割实现

-添加类别
自己创建的类
系统的类
第三方库

扩展

  • 扩展支持在编译时,有类的源代码的前提下 ,向类添加功能.可以将扩展做匿名的类别

  • 接口定义在.m文件中@implementation前声明,实现代码仍然在@implementation 内实现.

-扩展支持添加一下成员
属性
实例成员
类方法
实例方法
改写属性的读写属性

使用扩展

  • 扩展实现的成员都只能在.m实现文件内部访问,在类外不可以直接访问.

-扩展的主要用途在于信息隐藏,隐藏一些外部无需访问.而内部实现又需要使用的属性,.方法
类的主接口主要用于 "对类外公开"的接口
类的扩展接口主要用于 "对类内可见"的接口

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,063评论 19 139
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 12,918评论 6 13
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 180,126评论 25 708
  • 每个人最后都活成了自己所讨厌的样子,这句话听起来很有道理,世间的无数潜规则,人生的失意,职场的不得意,情场...
    一颗水煮蛋阅读 662评论 0 0
  • 只有三分钟热度的人,永远干不好销售![微笑]经常干了一个多月的问我:为什么还没挣到钱呢?那么我想问:“为什么我上了...
    李蕈阅读 183评论 0 0

友情链接更多精彩内容