zoukankan      html  css  js  c++  java
  • MAC 开发笔记——Objective C 语法之Category和Extension

    Category和Extension这两个概念,即便对于Java程序员,可能也会感到陌生。这是Objective C为程序员提供的两个强大的动态机制——简单地说,它们允许程序员为已有的对象添加新的方法,即便是在没有该对象的源代码的情况下。

    Category准确的定义是这样的:Category拥有一个名字,它不需要使用子类(Subclassing)机制,就允许向一个类文件中添加新的方法声明,并且在类实现的文件中的同一个名字下定义这些方法。其语法举例如下:

    #import "ClassName.h"
      
    @interface ClassName ( CategoryName ) 
    // method declarations 
    @end

    不过到现在为止,Category这个名字看起来仍然让人摸不着头脑——Category的中文是分类和范畴的意思——即便这个动态机制很强大,跟分类有什么关系呢?

    这是因为利用这个机制,程序员可以把一堆方法分门别类,分成若干组,每组方法用一个Category名字加以命名,定义在同一个文件里。这个就是为什么把这个机制叫做Category的原因。

    注意Category只能用于方法,不能用于成员变量。

    理解了Category,Extension就不难理解了。Extension是Category的一个特例,其名字为匿名(为空),并且新添加的方法一定要予以实现。(Category没有这个限制)

  • 相关阅读:
    oracle 释放表空间到OS(resize)
    dblink查找对应的目标端session
    oralce move和shrink释放高水位
    使用ogg实现oracle到postgresql表的实时同步
    oracle_fdw的安装和使用
    postgresql数据库升级
    ORA-00054: 資源正被使用中, 請設定 NOWAIT 來取得它, 否則逾時到期
    贪心算法应用-哈夫曼编码
    9 深拷贝学习
    8 标准库C文件
  • 原文地址:https://www.cnblogs.com/rolandash/p/1691314.html
Copyright © 2011-2022 走看看