黑马程序员技术交流社区
标题:
oc中的category
[打印本页]
作者:
vyqrvwgf
时间:
2015-11-4 12:43
标题:
oc中的category
1.category(分类)的作用
1)给类新添方法,不改变原有方法
2)把庞大的类分为若干模块开发
3)方便多人编写
2.category使用的目的
1)对现有类进行拓展
2)作为子类的替代手段
3)对类中方法归类
3.category使用分类的步骤
1)声明分类
2)实现分类
3)使用分类
4.category使用注意
1)分类只能增加方法,不能增加成员变量
2)分类中可以调用原类中的成员变量
3)分类中可以创建类中的同名方法,优先使用分类中的方法,在多个分类中有同名方法的时候,执行最后编译的那个类别中的同名好方法
5.分类的非正式协议
1)非正式协议
凡是NSObject类和其子类都是非正式协议
2)非正式协议的应用:获得一个字符串中阿拉伯数字个数
NSString.h
//为NSString 类增加新的方法
#import <Foundation/Foundation.h>
@interface NSString(countNum)
-(int)countNum;
@end
NSString.m
#import "NSString.h"
@implementation NSString(countNum)
int count;
-(int)countNum{
for (int i=0; i<[self length]; i++) {
if ([self characterAtIndex:i]<'9'&&[self characterAtIndex:i]>'0') {
count++;
}
}
return count;
}
@end
main.m
#import <Foundation/Foundation.h>
#import "NSString.h"
int main(){
NSString *str=@"h128yh91fh1";
NSLog(@"有%d个阿拉伯数字",[str countNum]);
return 0;
}
复制代码
6.category延展
Person_extern.h
#import "Person.h"
//分类名为空
@interface Person ()
//可以为类添加新属性
@property (nonatomic,assign) float weight;
-(void)run;
@end
复制代码
延展注意
1)延展添加的方法一定要在.m文件中实现
2)延展添加的方法和属性是相对私有的
作者:
fengjiequlada
时间:
2015-11-4 23:45
学习了!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2