9.Objective-C之@Category类别小实例

前言

1、小实例的问题需求和问题思路分析
2、C语言模块化思想解决方法
3、类别的使用
4、开发经验者的类别用法

1.小实例的问题需求和问题思路分析:

已知一个字符串,要求找出字符串中所有的阿拉伯数字并计算其个数
例如@"a123sb23r2jsowsalwf"求数字的个数
     1、计数器思想,定义一个变量保存结果
     2、遍历字符串,取出字符串中所有的字符

2.c语言模块化思想解决方法

 1 #import 
 2 
 3 int getStrCount(NSString* str)
 4 {
 5     int count = 0;
 6     for (int i = 0; i < str.length; i++) {
 7         unichar c = [str characterAtIndex:i];
 8         if (c >= '0' && c <= '9') {
 9             count++;
10         }
11     }
12     return count;
13 }
14 
15 int main(int argc, const char * argv[]) {
16     @autoreleasepool {
17         NSString* str = @"a123sb23r2jsowsalwf";
18         NSLog(@"%d",getStrCount(str));
19     }
20     return 0;
21 }

3.Category类别的使用

思路:因为是计算NSString对象的数字的个数,所以可以通过类别,将这个计算的功能作为NSSting的拓展方法。
创建NSString+getStrCount的类别:
######1..h定义的方法:
1 #import 
2 
3 @interface NSString (getStrCount)
4 
5 +(int)getStrCount:(NSString*)str;
6 
7 @end
######2..m实现的方法
 1 #import "NSObject+getStrCount.h"
 2 
 3 @implementation NSString (getStrCount)
 4 
 5 +(int)getStrCount:(NSString*)str{
 6     int count = 0;
 7     for (int i = 0; i < str.length; i++) {
 8         unichar c = [str characterAtIndex:i];
 9         if (c >= '0' && c <= '9') {
10             count++;
11         }
12     }
13     return count;
14 }
15 
16 @end
####3.调用的代码:
1 int main(int argc, const char * argv[]) {
2     @autoreleasepool {
3         NSString* str = @"a123sb23r2jsowsalwf";
4         NSLog(@"%d",[NSString getStrCount:str]);
5     }
6     return 0;
7 }

4.开发经验者的类别使用方法:

NSString+getStrCount类别中:
#####1.h定义的方法
#import 
2 
3 @interface NSString (getStrCount)
4 
5 -(int)count;
6 
7 @end
#####2.m实现的方法
1 #import "NSObject+getStrCount.h"
 2 
 3 @implementation NSString (getStrCount)
 4 
 5 -(int)count{
 6     int count = 0;
 7     for (int i = 0; i < self.length; i++) {
 8         unichar c = [self characterAtIndex:i];
 9         if (c >= '0' && c <= '9') {
10             count++;
11         }
12     }
13     return count;
14 }
15 @end
######3.调用的方法
1 int main(int argc, const char * argv[]) {
2     @autoreleasepool {
3         NSString* str = @"a123sb23r2jsowsalwf";
4         NSLog(@"%d",[str count]);
5     }
6     return 0;
7 }

你可能感兴趣的:(9.Objective-C之@Category类别小实例)