Objective-c Category(种类)
Objective-c Category(类别)
category是Objective-c里面最常用的功能之一。
类别实现如下:
这跟类的定义非常类似,区别就是category没有父类,而且在括号里面有category的名子。名字可以随便取。
类别实现:
使用方法:
category是Objective-c里面最常用的功能之一。
category可以为已经存在的类增加方法,而不需要增加一个子类。
类别接口的标准语法格式如下:
#import "类名.h" @interface 类名 (类别名) //新方法的声明 @end
类别实现如下:
#import "类名类别名.h" @implementation 类名 (类别外) //新方法实现 @end
这跟类的定义非常类似,区别就是category没有父类,而且在括号里面有category的名子。名字可以随便取。
如:我们如果想在NSString上增加一个方法判断它是否是一个URL,那就可以这么做:
#import … @interface NSString (Utilities) - (BOOL) isURL; @end
类别实现:
#import "NSStringUtilities.h" @implementation NSString (Utilities) - (BOOL) isURL{ if( [self hasPrefix:@"http://"] ) return YES; else return NO; } @end
使用方法:
NSString* string1 = @"http://www.****.net"; NSString* string2 = @"Pixar"; if( [string1 isURL] ) NSLog(@"string1 is a URL"); else NSLog(@"string1 is not a URL"); if( [string2 isURL] ) NSLog(@"string2 is a URL"); else NSLog(@"string2 is not a URL");