iOSdCateGory 类别的扩展---使用+理解
2015-05-05 11:28
169 查看
CateGory 在IOS 中是一种类的扩展方式,就好像是赵本山和宋丹丹的那个《下蛋的公鸡》的小品一样,公鸡是打鸣的,他不会下蛋,但是给他加个新功能 就是下蛋! 这就是CateGory在类,中的作用!(别吐槽!!谢谢!!)
要注意的是:gateGory 只能扩展 (instance method 和Class method )不可以添加instance variable(个人感觉被必要!可以instance variable添加为啥不用 继承呢!)
代码如下:
NSString+NewMethod.H
NSString+NewMethod.m
OK !!!搞定 一个判断邮箱和手机号还有获取时间戳的方法扩展完成!!
测试使用:
要注意的是:gateGory 只能扩展 (instance method 和Class method )不可以添加instance variable(个人感觉被必要!可以instance variable添加为啥不用 继承呢!)
代码如下:
NSString+NewMethod.H
#import <Foundation/Foundation.h> @interface NSString (CommonlyMethod) /** * 判断是否是邮箱 * * @return 结果 */ -(BOOL)isValidateEmail; /** * 判断是否是手机号 * * @return 结果 */ -(BOOL) isValidateMobile; /** * 获取当前时间戳 * 毫秒数形式 * */ +(NSString*)TimeJab; @end
NSString+NewMethod.m
#import "NSString+NewMethod.h" @implementation NSString (CommonlyMethod) -(BOOL) isValidateEmail{ NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}"; NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex]; return [emailTest evaluateWithObject:self]; } -(BOOL) isValidateMobile{ //手机号以13, 15,18开头,八个 \d 数字字符 NSString *phoneRegex = @"^((13[0-9])|(15[^4,\\D])|(18[0,0-9]))\\d{8}$"; NSPredicate *phoneTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",phoneRegex]; return [phoneTest evaluateWithObject:self]; } //获取当前时间戳 +(NSString*)TimeJab { NSTimeInterval time = [[NSDate date] timeIntervalSince1970]; long long int newTime = time * 1000; // timeSecond = newTime; NSString * timeStr = [NSString stringWithFormat:@"%lld", newTime]; return timeStr; } @end
OK !!!搞定 一个判断邮箱和手机号还有获取时间戳的方法扩展完成!!
测试使用:
#import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; NSString *str = @"13520489903"; //---如果是Email if ([str isValidateEmail]) { NSLog(@"他是一个email"); } if ([str isValidateMobile]) { NSLog(@"他是一个电话号码"); } //--获取当前时间戳 NSLog(@"the time point is ---->%@",[NSString TimeJab]); // Do any additional setup after loading the view, typically from a nib. } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. }
相关文章推荐
- Objective-C 编程语言(6)类别与扩展----对根类使用类别,扩展
- C#扩展方法的使用方法和理解
- 理解钩子Hook以及在Thinkphp下利用钩子使用行为扩展
- DOM 扩展 :理解Selectors API、使用HTML5 DOM扩展、了解专有的DOM扩展
- Android数据库框架GreenDao封装使用,易理解、易扩展
- 【iPhone代码片段之二】使用类别扩展UIColor,支持生成随机颜色
- 理解钩子Hook以及在Thinkphp下利用钩子使用行为扩展
- Objective-C 编程语言(6)类别与扩展----类别的使用
- 记iOS扩展(匿名类别)使用引发的崩溃
- 理解group by 语句的扩展使用
- OC学习之道:OC中类别--Category类目的使用/Eetension类的扩展 的使用
- 自定义扩展方法(集合泛型约束)超好用,这里理解方法当参数来使用
- 类别(Categories)和扩展/匿名类别(extensions)及其延伸使用
- 类别(Categories)和扩展/匿名类别(extensions)及其延伸使用
- 深入理解 c# 第一章 使用扩展方法对 List<Product> 排序
- 使用 Python 的 SQLite JSON1 和 FTS5 扩展
- LPC2400系列ARM体系下,通过CAN通讯应用,来理解IRQ和FIQ使用的心得
- ACCP7.0使用JAVA理解程序逻辑第十一章
- 使用HTTP模块扩展 ASP.NET 处理
- 使用log4j扩展包的RollingFileAppender生成带时间戳的日志文件