category是Objective-c里面最常用的功能之一。
类别实现如下:
这跟类的定义非常类似,区别就是category没有父类,而且在括号里面有category的名子。名字可以随便取。
类别实现:
使用方法:
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.csdn.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");