利用分类实现功能

这篇博客主要介绍了如何在Objective-C中通过分类(Category)来扩展NSString的功能,包括头文件(NSString+Extensions.h)和实现文件(NSString+Extensions.m)的详细内容。
摘要由CSDN通过智能技术生成

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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值