object-c的Category

来源:互联网 发布:c语言简单编程实例 编辑:程序博客网 时间:2024/06/06 02:52
Category可以给原有的类增加新的方法,而不用重新建一个类,然后在原有的类的基础上使用这个方法。
另外注意
1) 不能增加数据成员
2)若Category添加的方法与原有的类的方法相同那么原来的方法被覆盖

例子:给NSString类增加一个字符串反向输出的方法
头文件:NSString+ReverseString.h

#import <Foundation/Foundation.h>


@interface NSString (ReverseString)


-(id)reverseString;//字符串反向输出


@end

实现文件:NSString+ReverseString.m

#import "NSString+ReverseString.h"


@implementation NSString (ReverseString)

-(id)reverseString

{

    NSUInteger len = [self length];

    NSMutableString *retStr = [NSMutableStringstringWithCapacity:len];

    while (len>0) {

        unichar c = [self characterAtIndex:--len];

        NSString *s = [NSString stringWithFormat:@"%C", c];

        [retStr appendString:s];

    }

    return retStr;

}

@end

在其他地方调用:
#import "NSString+ReverseString.h"

-(void)test

{

    NSString *str = @"hello world!";

    NSString *retString = [str reverseString];

    NSLog(@"retString: %@", retString);

}

输出结果:retString: !dlrow olleh
原创粉丝点击