OC语言学习21-分类应用

来源:互联网 发布:山东大学网络教育期末考试 编辑:程序博客网 时间:2024/06/05 18:54

创建一个分类:

在原有基础上实现一个翻转字符串的功能:

New File  -> Objective-C File 创建一个NSString 类 名为Helper的分类文件

NSString + Helper.h文件代码

#import <Foundation/Foundation.h>


@interface NSString (Helper)


//翻转字符串

-(NSString *)reverse;

+(NSString *)reverseString:(NSString *)string;

@end

NSString +Helper.m实现代码

#import "NSString+Helper.h"


@implementation NSString (Helper)


//字符串翻转方式 012345 543210

-(NSString *)reverse

{

    NSUInteger length =self.length;

    

    unichar *buffer =calloc(length, sizeof(unichar));

    [selfgetCharacters:buffer range:NSMakeRange(0, length)];

    

    //翻转字符串

    for (NSUInteger i =0; i < length/2; i++) {

        unichar temp = buffer[i];

        buffer[i] = buffer[length -1 -i];

        buffer[length -1 -i] = temp;

    }

    NSString *result = [NSStringstringWithCharacters:bufferlength:length];

    

    free(buffer);

    return result;

}


+(NSString *)reverseString:(NSString *)string

{

    return [stringreverse];

}


@end


在main中使用:

#import <Foundation/Foundation.h>

#import "NSString+Helper.h"


int main(int argc,const char * argv[]) {

    @autoreleasepool {

        NSString *string =@"012345";

        NSLog(@"%@",string);

        NSLog(@"%@", [stringreverse]);

        

        string = @"abcdefghijkl opqrstuvw";

        NSLog(@"%@", [NSStringreverseString:string]);

    }

    return0;

}


打印结果:

Category[1562:58479] 012345

2017-07-25 11:32:01.494546+0800 OC25-Category[1562:58479] 543210

2017-07-25 11:32:01.494619+0800 OC25-Category[1562:58479] wvutsrqpo lkjihgfedcba