博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Objective-C之@类别小实例
阅读量:7015 次
发布时间:2019-06-28

本文共 1830 字,大约阅读时间需要 6 分钟。

循序渐进的类别小实例

内容大纲:

  • 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、类别的使用

思路:因为是计算NSString对象的数字的个数,所以可以通过类别,将这个计算的功能作为NSSting的拓展方法。

创建NSString+getStrCount的类别

复制代码
1 #import 
2 3 @interface NSString (getStrCount)4 5 +(int)getStrCount:(NSString*)str;6 7 @end
复制代码
复制代码
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
复制代码

然后在客户端:

复制代码
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 #import 
2 3 @interface NSString (getStrCount)4 5 -(int)count;6 7 @end
复制代码
复制代码
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
复制代码

然后在客户端:

复制代码
1 int main(int argc, const char * argv[]) {2  @autoreleasepool {3 NSString* str = @"a123sb23r2jsowsalwf";4 NSLog(@"%d",[str count]);5  }6 return 0;7 }
复制代码

转载地址:http://kmhtl.baihongyu.com/

你可能感兴趣的文章
二叉搜索树
查看>>
从12306看高性能网站并发集群与负载均衡
查看>>
网络数据隐私保护 各国齐出招
查看>>
MySQL解压版安装步骤
查看>>
docker的安装及使用
查看>>
mongodb按时间分组
查看>>
c/c++变量之内存空间分配
查看>>
state状态设计模式
查看>>
产品经理技能树之 项目节点
查看>>
简析Android软键盘弹出时窗口上移的问题
查看>>
http长轮询&短轮询
查看>>
Android 应用换肤功能(白天黑夜主题切换)
查看>>
Linux编程操作知识整理(continued)
查看>>
2012.8.13 onEnter与触摸事件
查看>>
基于 HTML5 WebGL 的 3D 棉花加工监控系统
查看>>
[redis] 获得 database, key, value
查看>>
swift之mutating关键字
查看>>
Nginx 0.8.x + PHP 5.2.13(FastCGI)搭建胜过Apache十倍的W...
查看>>
10个有趣的Javascript和CSS库
查看>>
ZiSync:跨平台局域网自同步工具
查看>>