分类-Category

1、基本用途

  • 如何在不改变原来类模型的前提下,给类扩充一些方法?有2种方式

  继承

  分类(Category)

2、格式

  • 分类的声明

  @interface 类名 (分类名称)

  // 方法声明

  @end

  • 分类的实现

  @implementation 类名 (分类名称)

  // 方法实现

  @end

3、好处

  • 一个庞大的类可以分模块开发
  • 一个庞大的类可以由多个人来编写,更有利于团队合作

4、给系统自带的类添加分类

  • 给NSString增加一个类方法:计算某个字符串中阿拉伯数字的个数
  • 给NSString增加一个对象方法:计算当前字符串中阿拉伯数字的个数

5、注意

  • Category可以访问原始类的实例变量,但不能添加变量,只能添加方法。如果想添加变量,可以考虑通过继承创建子类
  • Category可以实现原始类的方法,但不推荐这么做,因为它是直接替换掉原来的方法,这么做的后果是再也不能访问原来的方法
  • 多个Category中如果实现了相同的方法,只有最后一个参与编译的才会有效
时间: 2024-10-13 11:37:00

分类-Category的相关文章

黑马程序员---OC基础7【ARC概念】【ARC对象内存管理】【分类Category】

------- iOS培训.Android培训.Java培训.期待与您交流! ---------- [ARC概念]   1.指针的分类 1)强指针,默认的情况下,所有的指针都是强指针,关键字strong: 2)弱指针,_ _weak关键字修饰符的指针 2.ARC概念 自动引用计数 永远不要写retain和release.autorelease三个关键字 编译器会在编译的时候自动插入retain和release.autorelease, 是一个编译器的特性:“垃圾回收”是运行时的特性 3.ARC工

Arc 自动内存管理 分类Category 类扩展 Block 代码段 和 Protocol协议的一些简单知识的总结

1. Arc的使用 Arc是自动内存管理: arc的使用原则 1).只要对象没有任何强类型指针引用就会被释放’. 2).只要对象被任何强类型指针指引就不会被释放. 弱指针:__weak 被__weak修饰的指针就被称为弱型指针: 强类型指针 默认的指针都是强类型指针: 被__strong修饰的指针也是强类型指针. 使用Arc时可以重写dealloc方法,但是在重写方法时不能手动调用[super dealloc]: 在Arc中通过@property生成的属性如果是OC的对象那么要用Strong来修

Objective-C 分类Category

OC提供了一种可以在不修改类的源码基础上,扩展类的方法的功能,"分类"Category,这个机制和C#中的扩展方法类似,一般用于在不方便修改类的源码时(如OC系统相关的类库),但有有需求要拓展类的方法,可以使用分类来实现. Java中应该是没有提供相关的机制,但是Java可以通过动态代理来实现AOP,在切入点前后执行代码逻辑,个人认为比OC还要方便. // // Girl.h // 10_Category // // Created by apple on 14/12/23. // C

关于ios object-c 类别-分类 category 的静态方法与私有变量,协议 protocol

关于ios object-c 类别-分类 category 的静态方法与私有变量,协议 protocol 2014-02-18 19:57 315人阅读 评论(0) 收藏 举报 1.category,覆盖原类的方法,即使不引用该category头文件,也能覆盖,respondsToSelector:方法也能响应.2.category,不可以有私有变量,但是可以有@property的声明,property的声明只是声明了该类的set,get方法(需要引用该category的头文件),但是categ

Objective-C分类 (category)和扩展(Extension)

1.分类(category) 使用Object-C中的分类,是一种编译时的手段,允许我们通过给一个类添加方法来扩充它(但是通过category不能添加新的实例变量),并且我们不需要访问类中的代码就可以做到,这点和javascript中使用原型来定义属性有点类似. 我们可以为一个类创建一个新的方法,而不需要在代码中编辑类定义. 下面就是定义并使用分类的例子程序,通过下面代码,我们可以给Object-C中的NSString 添加camelCaseString分类,使用camelCaseString方

黑马程序员-OC特有语法:分类category,给NSString增加方法计算字符串中数字的个数

1:分类的使用场景:想对一个类,扩充一些功能,而又不改变原来类的模型,也不用继承,这时OC中的特有语法:分类可以做到: 当然分类也是一个类,也需要声明和实现,声明在.h文件中,实现在.m文件中,格式如下 // 声明 @interface  类名  (分类名称) @end // 实现 @implementation 类名 (分类名称) @end 2:分类的好处,当一个类比较庞大时,不同的部分可以放到不同的分类中,也方便团队中类的开发: 3:分类使用注意: a:分类不能增加成员变量,只能对原类增加方

Objective-C:分类(Category、extension)

分类(Category .Extension) (一)分类的划分 (2) 1.(命名的类别)类别Category:只能添加新的方法,不能添加新变量. 2.(未命名的类别)类的扩展Extension://扩展一般直接写在类的实现文件中     //扩展中定义的都是类中私有的实例变量和方法 (二)分类的使用 (1)分类只能增加方法(包括类方法和对象方法),不能增加成员变量 (2)在分类方法的实现中可以访问原来类中的成员变量: (3)分类中可以重新实现原来类中的方法,但是会覆盖掉原来的方法,导致原来的

OC基础--分类(category) 和 协议(protocol)

OC 中的category分类文件相当于 C#中的部分类:OC 中的protocol协议文件(本质是头文件)相当于 C#中的接口.今天就简单说明一下OC中的这两个文件. 由于视频中的Xcode版本低,导致了分类文件和协议文件没有找到,最后百度得知: 如图:Xcode 7.2版本中的category文件和protocol文件都归类到了Objective-C File 中   一.category文件: 作用:可以扩展自定义类,或者系统类.下面的实例,是扩展了NSString 类,在类中扩展了计算字

WordPress插件:WP No Category Base 去除分类Category目录

不少折腾WordPress的朋友都希望去掉分类链接中的 /category/ 目录标志,网上很多这方面的教程,据倡萌所知,除了使用 WP No Category Base 插件(或类似插件),其他的方法都是不太完美的.WordPress大学目前也去掉了/category/ 目录,使用的正是 WP No Category Base 插件. WP No Category Base 插件功能简单,就是仅仅为了去除 /category/ 目录标志,直接安装,不需要任何设置就可以使用. WP No Cat

IOS(六) 分类Category

一 Category 分类:Category(类目,类别) (OC有) 命名: 原来的类+类别名(原来的类名自动生成,只要写后面的类别名,一般以模块名为名.比如原来类 Person,新建分类 Ct,Person+Ct) 分类的作用: 在不改变原来类的内容的情况下,可以给我们的类添加一些方法. 注意: 1. 分类只能增加方法,不能增加成员变量. 2. 分类方法的实现中,可以访问原来类中的成员变量. 3. 分类可以重写原来类的方法.但是会覆盖原来类的方法(一般不会再分类当中重写原来类的方法). 4.