分类本意就是对当前类进行方法的扩展
不可以对属性进行扩展 协议也是一样 只能扩展方法不能扩展属性
对NSString 进行简单的扩展实例说明分类
对类进行扩展操作过程
// .h 是对字符串方法的声明扩展
#import <Foundation/Foundation.h>
@interface NSString (Number)
// 计算字符串中阿拉伯数字的个数
- (int) numberCount;
@end
#import "NSString+Number.h"
@implementation NSString (Number)
// @"abc123"
- (int)numberCount
{
//[self length];
int count = 0;
int len = (int) self.length;
for (int i = 0; i<len; i++) {
// 获取i位置对应的字符(char)
char c = [self characterAtIndex:i];
if (c>='0' && c<='9')
{
count++;
}
}
//返回 长度 对NSString进行了扩展
#import <Foundation/Foundation.h>
#import "NSString+Number.h"
int main(int argc, const char * argv[])
{
@autoreleasepool {
NSString *str = @"abc 123fdsf090900sdfds68768867";
int count = [str numberCount];
NSLog(@"%d", count);
}
return 0;
}
return count;
}
@end