您的位置:首页 > 其它

利用分类实现功能

2016-07-28 15:24 260 查看
main.m

//
// main.m
// 利用分类实现功能
//
// Created by yaomars on 16/4/27.
// Copyright © 2016年 yaomars. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "NSString+Extensions.h" //这个分类就是非正式协议!!!

//利用分类实现以下两个功能:(1)字符串的反转。(2)计算字符串中英文字母的个数

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

// 分析: 根据这两个功能,确定为NSString这个类添加分类

// 1.字符串的反转功能
NSString *str = @"abc12de3f";
str = [str rollbackString];
NSLog(@"字符串的反转后为: %@",str);

// 2.计算字符串中英文字母的个数
NSUInteger count = [str countNumberOfCharacter];

NSLog(@"字符串中英文字母的个数: %lu",count);

}
return 0;
}


NSString+Extensions.h
//
//  NSString+Extensions.h
//  HM笔试总结
//
//  Created by yaomars on 16/4/27.
//  Copyright © 2016年 yaomars. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface NSString (Extensions)

// 1.字符串的反转功能
-(NSString *)rollbackString;

// 2.计算字符串中英文字母的个数
-(NSUInteger)countNumberOfCharacter;

@end


NSString+Extensions.m
//
//  NSString+Extensions.m
//  HM笔试总结
//
//  Created by yaomars on 16/4/27.
//  Copyright © 2016年 yaomars. All rights reserved.
//

#import "NSString+Extensions.h"

@implementation NSString (Extensions)

-(NSString *)rollbackString{

NSMutableString *strM = [NSMutableString string];
for (int i=(int)self.length-1; i >= 0; i--) {
NSString *temp = [self substringWithRange:NSMakeRange(i, 1)];
[strM appendString:temp];

}

return strM;   //返回的是一个可变的字符串  会进行自动转换??
}

-(NSUInteger)countNumberOfCharacter{

NSUInteger count = 0;
for (int i=0; i<self.length; i++) {
unichar ch = [self characterAtIndex:i];
if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')) {
count ++;
}
}
return  count;

}

@end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: