• 什么么是Category


    什么是Category

    • Category有很多种翻译:分类类别类目(一般叫分类)
    • Category是OC特有的语法,其他语言没有的语法
    • Category的作用
      • 可以在不修改原来类的基础上,为这个类扩充一些方法

    书写格式

    • 声明
      • @interface 类名(分类名称)
      • @end
    • 实现
      • @implementation类名(分类名称)
      • @end

    书写格式举例

    • 声明
      • #import "Student.h"
      • @interface Student (Study)
      • @end
    • 实现
      • #import "Student+Study.h"
      • @implementation Student (Study)
      • @end

    使用Xcode创建分类

    使用注意

    • 分类只能增加方法,不能增加成员变量
    • 分类可以访问原来类中的成员变量
    • 如果分类和原来类出现同名的方法,优先调用分类中的方法,原来类中的方法会被忽略
    • 方法调用的优先级(从高到低)
      • 分类(最后参与编译的分类优先)
      • 原来类
      • 父类

    价值所在

    • 实现了类的相关方法的模块
      • 把不同的方法分配到了不同的分类文件中
      • 可以用一个分类来代表一类功能(一个模块)
    • 支持团队协作
      • 可以让团队内部的不同成员共同扩充某个类的功能
    • 可以为系统自带的类扩充功能

    类扩展

    • 什么是类扩展
      • 可以为某个类扩充一些私有的成员变量和方法
      • 写在.m文件中
      • 英文名是Class Extension
    • 书写格式
      • @interface 类名()
      • @end
    • 对比分类,就少了一个分类名称,因此也有人称它为"匿名分类"
  • 相关阅读:
    CF627A Xor Equation
    CF865C Gotta Go Fast
    HDU 2222 Keywords Search
    BZOJ 2038: [2009国家集训队]小Z的袜子(hose)
    BZOJ 3781: 小B的询问
    BZOJ 1086: [SCOI2005]王室联邦
    BZOJ 2120: 数颜色
    BZOJ 1503: [NOI2004]郁闷的出纳员
    BZOJ 3757: 苹果树
    BZOJ 1861: [Zjoi2006]Book 书架
  • 原文地址:https://www.cnblogs.com/saurik/p/4831762.html
Copyright © 2020-2023  润新知