NSDate和NSDateFormatter的使⽤、Category、Extension、Protocol、delegate

来源:互联网 发布:u3d游戏源码交易平台 编辑:程序博客网 时间:2024/06/11 12:14
1、NSDate和NSDateFormatter的使⽤
* NSDate是Cocoa中⽤于处理⽇期和时间的基础类,封装了某⼀给定的 时刻(含⽇期,时间,时区)。      
*  NSDateFormatter是iOS中的⽇期格式类,功能是实现NSString和NSDate的互 转。
通过日期转成字符串
    NSString *nowString = [formatter stringFromDate:[NSDate date]];
通过字符串转成日期
    NSString *str = @"20161225 122456";
    [formatter setDateFormat:@"yyyyMMdd HHmmss"];
字符串转date,设置的格式跟字符串中一定要一致
    NSDate *dd = [formatter dateFromString:str];
    NSLog(@"dd = %@",dd);
2、Category
* Category也叫分类或类⺫ 主要作⽤是为没有源代码的类添加⽅法。 通过Category添加的⽅法会成为原类的⼀部分,能被子类继承。从⽽达到扩展⼀ 个类的功能。能给一个类扩展方法,不能增加实例变量。
3、Extension
Extension的主要作⽤是管理类的“私有”⽅法。 ⾯向对象编程也叫⾯向接⼝编程。 在设计⼀个类的时候,有些⽅法需要对外公开(我们称为接⼝), 有些⽅法仅仅内部使⽤(⽐如:是某个⽅法的⼀个⼩步骤)。 Extension的功能是帮我们去管理这些内部使⽤的⽅法(“私有”⽅ 法)。Extension针对的是⾃⼰的类,必须有源代码的类。延展:给类增加私有的东西,管理类的私有方法,只有声明,没有实现,由原类进行实现;
4、Protocol
Protocol(协议),是iOS开发中常⽤的技术。 协议是⼀套标准(⼀堆⽅法的声明),只有.h⽂件。就像⼀张任 务清单(或便利贴),上⾯写了⼀堆需要处理的事。清单交给谁, 谁就要去完成清单上规定的任务。 接受协议的对象实现协议中定义的⽅法。即:清单交给谁,谁就 要去完成清单上规定的任务。协议中的⽅法默认是必须实现的,即@required。 关键字 @optional 修饰的⽅法是可选的,可实现 也可不实现。 协议:只有方法的声明,没有实现,遵守协议就可以实现声明的方法,通常与代理delegate联合起来使用,需要对代理做判断。
5、delegate
Protocol的核⼼使⽤场景是实现delegate设计模式。 delegate(代理)。通俗的讲就是代理商,主要的任务是帮你完 成⼀些任务。 ⽐如:保姆就可以认为是delegate,主要的任务是帮你带孩⼦、 做饭、洗⾐服等。
协议就是一堆方法的声明; 
0 0