| 
 
| 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)延展添加的方法和属性是相对私有的
 | 
 |