(一)Category作用:Category可以向已存在的类添加新的方法,或者覆盖原来类中已经存在的方法,从而扩展已有类(在Java中为了实现类似功能,一般是创建子类)
(二)Category例子:使用Category,为NSString类添加一个判断字符串是否只包含数字的方法。
(1) 如图1、图2,新建一个扩展NSString类的Category
图1
图2
(2)在.h文件声明方法需要增加的方法:
#import <UIKit/UIKit.h>
@interface NSString (JXString)
-(BOOL)isAllNumber;
@end
(3)在.m文件实现新增的方法:
#import "NSString+JXString.h"
@implementation NSString (JXString)
-(BOOL)isAllNumber{
NSString *baseStr = @"1234567890";
BOOL isVaild = YES;
for (int i=0; i<self.length; i++) {
NSRange range = [self rangeOfComposedCharacterSequenceAtIndex:i];
NSString *s = [self substringWithRange:range];
if ([baseStr rangeOfString:s].location == NSNotFound) {
isVaild = NO;
}
}
return isVaild;
}
@end
#import "ViewController.h"
#import "NSString+JXString.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
NSLog(@"%@",[@"hello world" isAllNumber]?@"YES":@"NO");
NSLog(@"%@",[@"12332112" isAllNumber]?@"YES":@"NO");
NSLog(@"%@",[@"abc789" isAllNumber]?@"YES":@"NO");
}
@end
结果:
(3)更多: 关于Category和Extensions的区别:
http://blog.youkuaiyun.com/jiajiayouba/article/details/21104987
本文详细介绍了如何使用Category为Objective-C中的NSString类添加一个判断字符串是否只包含数字的方法,包括实现步骤和测试代码。通过实例演示了Category在扩展类功能上的应用。
689

被折叠的 条评论
为什么被折叠?



