美文网首页
9.Objective-C之@Category类别小实例

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

作者: 峰子1994 | 来源:发表于2017-10-28 17:23 被阅读4次

前言

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

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

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

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

 1 #import <Foundation/Foundation.h>
 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 <Foundation/Foundation.h>
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 <Foundation/Foundation.h>
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类别小实例

    前言 1.小实例的问题需求和问题思路分析: 2.c语言模块化思想解决方法 3.Category类别的使用 4.开发...

  • GeekBand OC 12. 类别与扩展

    类别Category 给已有的类加上类别以补充方法 可以添加类方法、实例方法、重写基类方法 不可以添加属性、实例变...

  • iOS 类别Category和类拓展Extension的使用与区

    1. 类别Category和类拓展Extension的区别 1>.类别(Category) 类别(Category...

  • 类别和扩展

    类别(Category) 类别的作用 拓展当前类,为类添加方法拓展。 类别的局限性 无法向现有的类中添加新的实例变...

  • iOS开发小技巧及小知识点

    转载至iOS开发小技巧及小知识点 1、Category(类别) 什么是Category1、Category可以在不...

  • iOS 简单理解分类(category)和类扩展(extensi

    类别(category): 1.类别不能为已存在的类添加实例变量。 2.类别中添加的方法优先级高,会覆盖原类中的方...

  • 类别Category

    通过使用范畴(Category),程序员可以为任何已有的类添加方法。以NSString为例,虽然没有NSStrin...

  • Category类别

    #pragma mark - 类别是对原有类进行扩展 NSString+FilePath.h —>类名+类别名.h...

  • category(类别)

    category相关网站点击是现有的类添加的方式 比继承更为简洁的方法来对类进行扩展 不用子类添加新方法 就能为现...

  • 类别(Category)

    1.category简介 category是Objective-C 2.0之后添加的语言特性,category的主...

网友评论

      本文标题:9.Objective-C之@Category类别小实例

      本文链接:https://www.haomeiwen.com/subject/gxuspxtx.html