Objective-C中的Category(分类)

1 Category概念:动态的为已经存在的类添加新的行为(方法)

2 Category(分类)创建的方法

(1)通过Xcode生成分类

(2)可以手动生成分类,在头文件里面生成2个@interface

例如:

在Student.h文件中
@interface Student:NSObject
-(void)test1;
@end

下面是Student的分类,test为分类的名称
@interface Student(test)
-(void)test2;
@end

在Student.m文件中
@implementation Student
-(void)test1
{
	NSLog(@“test1…”);
}
@end

@implementation Student(test)
-(void)test2
{
	NSLog(@“test2…”);
}
@end

3 Category(分类)的说明

(1)()代表着一个分类

(2)()中的Test代表着分类的名称

(3)分类只能扩展方法,不能增加成员变量

(4)使用Category对类进行扩展时不需要创建子类

Category使用简单的方式,实现了类的相关方法的模块化,把不同的类方法分配到不同的分类文件中

4 Category的使用场景

(1)在定义类时的某些情况下(例如需求变更),你可能想要为其中的某个或几个类中添加新的方法

(2)一个类中包含了许多不同种类的方法需要实现,而这些方法需要不同团队的成员来实现

(3)在使用基础类库时,有可能希望这些类实现一些自己需要的方法,比如NSString+JSON.h,为NSString这个类拓展一些解析JSON的方法。

Objective-C中的Category(分类),布布扣,bubuko.com

时间: 2024-08-07 04:04:11

Objective-C中的Category(分类)的相关文章

Objective-C( Category 分类,非正式协议,分类延展)

分类: 主要是给原来类增加一些方法;不可以增加成员变量 Person (Person+eat) 非正式协议: 非正式协议就是类别,即凡是NSObject或其子类Foundation框架中的类增加的类别,都是非正义协议 给NSObject写一个类别,NSObject 类名(eat),NSObject子类都可继承里面的方法 分类(category)延展 延展类别又称类的扩展: @interface Person类别 (空的)// 类扩展 { // 可以添加属性 int _age: } // 扩充方法

objective C中继承、协议、分类和多态的实现

第一.objective C中继承的实现 在oc中只有实例变量会有权限控制,实例方法和类方法是没有权限控制的,这点与c++不同,OC默认的是protected,并且在声明权限控制时,没有分号 在OC中可以像C++一样用指针运算法来访问实例变量 Rectangle.h 文件代码: #import <Foundation/Foundation.h> @interface Rectangle : NSObject { int _width; int _height; } @property (non

Objective -C NSDate、Category &nbsp; 、Extension、Protocol

NSDate的使用 NSDate是Cocoa中用于处理日期和时间的基础类,封装类某一给定的时刻,具体的日期,时间和时区 使用+date方法获取当前日期和时间 例如  :NSDate*nowDate = [NSDate date]: 注意,,NSLog(@"%@",nowDate): 无论你是哪个时区的时间,打印时间,打印时总是打印对应的0时区时间 NSTimeinterval NSTimeInterval(即double类型) 用以表示以秒为单位的时间间隔 可以使用-initWithT

OC语法9——Category分类

Category(分类): 当我们在开发过程中要给类添加新的方法时,一般不要去动原类. 再不改动原类的限制下,怎么拓展类的方法?以往我们的做法是新建子类使其继承该类,然后通过子类拓展类的行为. OC提供了一种全新的方法:Category(分类).在不改动原类的基础上动态的拓展类的行为. 假如我们要动态拓展Student类,则应该建一个分类(Category),注意:文件命名要有规范,Student+StuOthers.h 格式:只要在被扩展的类名(原类)后加(),在括号里写分类名(拓展类名):

黑马程序员— OC核心语法之构造方法、Category分类、类的本质、description和SEL

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 上一章我们学习了OC的一些核心语法,初步了解了OC作为一门开发语言的一些较为深层次的知识.本章我们继续学习OC的核心语法,主要包括OC的构造方法,Category分类,类的本质及深入研究,以及description关键字和SEL关键字. 第一讲     构造方法 1. 构造方法 构造方法是用来初始化对象的方法,是一个对象方法,以减号"-"开头,构造方法其实就是init方法,初始化完毕

obj-c9[[NSDate,{Category分类,Extension,管理&#39;私有”方法,Protocol (协议)}]

#import <Foundation/Foundation.h>//#import "Person.h"#import "NSString+SayHiMessage.h"#import "NSMutableArray+ChangeArray.h" #import "NSString+ExchangeChineseToEnglish.h" #import "NSString+EmailValidation

OC category (分类,类目),日期类常用用法

学了这么久OC我们都知道OC中的类分为系统类和自定义的类,当我们在使用系统为我们提供的类时有时往往不能满足我们的需要,例如,字符串NSString类提供了比较字符串的方法compare,为数组排序时系统默认的是升序,当需要为数组按降序排序时,一种途径是需要新建一个类写一个降序的方法,而另一个途径就是系统提供的category(分类,类目),分类(类目,category)的目的为了给没有源代码的类添加方法(只能添加方法,不能添加实例变量),是扩充一个类功能的方式之一,为原有类扩充的方法会成为原类的

UML中关系的分类及其概念——总结备忘

UML中关系分类: 依赖:依赖是两个事物间的语义关系,其中一个事物(独立事物)发生变化会影响另一个事物(依赖事物)的语义. 关联:关联是类与类之间的联接,它使一个类知道另一类的属性和方法. 聚合:聚合是一种特殊类型的关联,它描述了整体和部分的结构关系. 组合:组合是关联的一种,是比集合关系强的关系. 泛化:泛化(继承)是一种特殊/一般关系,特殊元素(子元素)的对象可替代一般元素(父元素). UML中关系符号及对应的Java代表的含义 依赖关系         关联关系      聚合关系    

python把文件中的邮箱分类 保存到相应的文件里面

python把文件中的邮箱分类 保存到相应的文件里面(测试数据100W数据时间10秒) #coding:utf-8 import time import linecache def readfile(file):     #读取数据     list_dict = {}     file_data =  [ x.replace('\n','') for x in linecache.getlines(file) if '@' in x ]     #把后缀名组成字典中的keys,按照要求把文件中