object c的分类

//
//  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






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值