首页 > 代码库 > iOS基础知识之类别

iOS基础知识之类别

本类从三个方面介绍iOS中的类别,分别是  什么是类别;类别的语法;类别的作用。具体内容如下:

一、类别:

类的补丁:当不能获取现有类的源码,但需要对现有类的功能进行补充时,这种情况下使用类别。

类别只能添加方法,不能添加成员变量。

类别中不提倡使用@property,@property在类别中使用时,不能生成对应的私有变量,因为类别中不能声明成员变量。

例如:对NSString进行加密MD5,这种情况下不能获取NSString的源码,但需要为其添加加密功能,则可以使用类别实现。

二、类别语法

1 @interface class_name (category_name)
2 
3 @end

例如:

1 @interface NSString (HelloWOrld)
2 - (void)helloWorld;
3 @end
4 
5 @implementation NSString (HelloWOrld)
6 - (void)helloWorld {
7   NSLog(@"hello world....");
8 }
9 @end

表示通过类别为现有类NSString添加helloWorld方法。

1 NSString *str = @"zhang";
2 [str helloWorld];

 

iOS中实现类别的关键步骤如下:

1.选择Objective-C File,点击next.

技术分享

2.在File中填写类别名称,在File Type中选择Category,在Class中选择需要进行扩展的现有类,最后点击next。

技术分享

 

三、类别的作用
1.使用类别为一个类的“隐藏方法,即未在.h中声明的方法”添加声明。

2.分散一个大型的类,即当类中的方法过多时,可以将方法的声明和实现放到类别中实现,从而达到分散一个大型类的作用。

注意:类别方法的优先级比类本身方法的优先级要高,即类别和类本身中拥有相同的方法时,有限调用类别内的方法。

3.创建非正式协议,类似Java中的接口。

 

iOS基础知识之类别