美文网首页
iOS 开发之 Objective-C 基础(二) --Geek

iOS 开发之 Objective-C 基础(二) --Geek

作者: 白慕 | 来源:发表于2016-05-23 02:31 被阅读0次

    类别 - Category
    类别支持在没有源代码的情况下,基于某些特定的场合,为一个类增加功能。
    可以添加:
    类方法、实例方法、重写基类方法
    不能添加:
    属性、实例变量、已存在的同名方法

    命名规范:
    文件名:类名+扩展方法 如 NSString+Drawing.h/m

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

    可以为以下类添加类别:
    自己创建的类
    系统的类
    第三方库

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

    接口定义在.m文件中@implementation 前声明,实现代码仍然在@implementation 内实现。
    扩展支持添加以下成员:
    添加属性、添加实例成员、添加类方法、添加实例方法、改写属性的读写属性

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

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

    相关文章

      网友评论

          本文标题:iOS 开发之 Objective-C 基础(二) --Geek

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