//
// main.m
// Category
//
// Created by 千雅爸爸 on 16/10/7.
// Copyright © 2016年 kodulf. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "NSString+Helper.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
//分类用来对类进行扩展,java中的自定义view有点类似
//例如nsstring 没有反转字符串的方法的
//command+n, 选择object-c file,然后在file type 选择category,下面的class 写入nsstring
//@interface NSString (Helper)
//调用的时候要先引入,例如这里是#import "NSString+Helper.h"
NSString *string = @"0123456789";
NSLog(@"反转前 %@,%p",string,string);
// string = [string reverse];//注意这里需要string重新指向这个新的地址
// NSLog(@"反转后 %@,%p",string,string);
NSString *newString = [string reverse];
NSLog(@"反转后 %@,%p",newString,newString);
}
return 0;
}
//
// NSString+Helper.h
// Category
//
// Created by 千雅爸爸 on 16/10/7.
// Copyright © 2016年 kodulf. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface NSString (Helper)
-(NSString *)reverse;
+(NSString *)reverseString:(NSString *)string;
@end
//
// NSString+Helper.m
// Category
//
// Created by 千雅爸爸 on 16/10/7.
// Copyright © 2016年 kodulf. All rights reserved.
//
#import "NSString+Helper.h"
@implementation NSString (Helper)
//反转
-(NSString *)reverse{
//如何获取字符串中的字符
NSInteger length = self.length;
unichar *buffer = calloc(length,sizeof(unichar));//c语言的方法
[self getCharacters:buffer range:NSMakeRange(0, length)];//执行完了,会将字符串中
for (NSInteger i = 0; i<length/2; i++) {
unichar temp = buffer[i];
buffer[i]=buffer[length-1-i];
buffer[length-1-i] = temp;
}
NSString *result = [NSString stringWithCharacters:buffer length:length];
return result;
}
//不用重复写了,直接调用上面的
+(NSString *)reverseString:(NSString *)string{
return [string reverse];
}
@end