类别用来实现对现有类的扩展,只能扩展方法,不能扩展实例变量.在创建OC文件时可以选择category,可以实现多继承的功能
//
// NSString+Reverse.h
// IOS150616_ObjectiveC_类别
//
// Created by qianfeng on 15/6/16.
// Copyright (c) 2015年 Peng Junlong. All rights reserved.
//
#import <Foundation/Foundation.h>
//创建一个Objective-C file,选择Category
@interface NSString (Reverse)
+ (NSString *)reverseString:(NSString *)aString;
+ (void)printString:(NSString *)aString;
@end
// NSString+Reverse.m
// IOS150616_ObjectiveC_类别
//
// Created by qianfeng on 15/6/16.
// Copyright (c) 2015年 Peng Junlong. All rights reserved.
//
#import "NSString+Reverse.h"
//类名+类别名+.h
//类名+类别名+.m
@implementation NSString (Reverse)
+ (NSString *)reverseString:(NSString *)aString
{
NSInteger len = [aString length];
NSString *str = @"";
for (NSInteger i = len-1; i>=0; i--) {
str = [str stringByAppendingFormat:@"%C",[aString characterAtIndex:i]];
}
return str;
}
+ (void)printString:(NSString *)aString
{
NSLog(@"%@",aString);
}
@end
// main.m
// IOS150616_ObjectiveC_类别
//
// Created by qianfeng on 15/6/16.
// Copyright (c) 2015年 Peng Junlong. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "NSString+Reverse.h" //使用类别中的方法,必须包含对应的头文件
//NSString
//类别 给类或者类族扩展方法,但是不能扩展实例变量
int main(int argc, const char * argv[]) {
@autoreleasepool {
[NSString printString:[NSString reverseString:@"Hello World"]];
}
return 0;
}
`