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中的接口。