您的位置:首页 > 移动开发 > IOS开发

iOS Category小举例

2016-01-21 21:09 639 查看

(一)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


(4)测试代码:

#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.csdn.net/jiajiayouba/article/details/21104987
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息