一、掌握NSDate和NSDateFormatter的使用
NSDate是Cocoa中?用于处理日期和时间的基础类,封装了某一给定的
时刻(含日期,时间,时区)。
了解NSDate的创建,如何计算当前时间,时间间隔,以及时间日期与字符之间的互转.
1>.NSDate创建,当地时间计算,时间按间隔计算,时间与字符之间的互转
练习题1:计算当前时间与一个固定时间按的时间差
练习二:字符串转化为日期对象
二、掌握Category的定义和使用(只能为类扩展类方法或实例方法)
1.主要作用是为:没有源代码的类添加方法
2.通过Category添加的方法会成为原类的一部分。从而达到扩展一个类的功能
3.如何定义Category: a. 新建文件 b. 选择Objective-C Category模板 c. 填写类名和分类名 d. (.h)文件添加方法声明 e. (.m)文件添加方法实现 f. 需要使用的地方进行调用
4.caCategory的实现:
/// NSString+SayHi.h
文件
#import
@interface NSString (SayHi)
- (void)hi;
@end
// NSString+SayHi.m
文件
#import "NSString+SayHi.h"
@implementation NSString
(SayHi)
#pragma mark
实现hi方法
- (void)hi
{
NSLog(@"这是通过category为NSString创建的hi方法");
}
@end
5.category与子类的区别
练习题一:翻转或倒叙输出一个字符串(注意category只是扩展类方法其包括相应的.m和.h文件)
练习题二:Category与NSDate的综合使用
使用Category为NSDate类添加一个类方法(deWithDateString:),实现将下述字符串转换为NSDate对象。 将@“20140402142850”转换NSDate
三、掌握Extension的定义和使用
1.Extension的主要作用是为类添加‘私有’方法。
我们在设计一个类的时候,有些方法需要对外公开(我们称为接口),有些方法可能仅仅内部使用(比如,是某个方法的一个小步骤)
Extension的功能是帮我们去管理这些内部使用的方法(“私有”方法)
2.Extension特点:
a. Extension的语法格式和Category很相似
b.相当于把Category的.h文件挪到了原始类的.m文件中,同时,其实现也是在原始类的.m文件内完成
c. Extension针对的是自己的类,必须有源代码的类
3.extension与category的区别
定义Extension:在Person.m文件中添加Extension:
四、掌握Protocol的定义和使用
1.Protocol又名协议,是iOS开发中常用技术
2.协议是一套标准(一堆方法的声明),只有(.h)文件
3.接受协议的对象实现协议中定义的方法
4.Protocol特点:(就像签订合同一样,遵循合同执行响应任务)
a. 协议就像一张任务清单(或便利贴),上面写了一堆需要处理的事。清单交给谁,谁就要去完成清单上规定的任务。
b. 协议定义好之后,需要有类去遵守这个协议,实现协议里面的方法
c. 遵守协议即在(.h)文件的父类名后写上<协议名>。实现协议里的方法即在(.m)文件中实现协议中的方法。相当于给这个类添加了脱岗额方法。这个类的实例就可以调用这些方法。
实例:student类协议.相应的studentProtocol.h student.h student.m 文件内容代码
studentProtocol.h协议的声明(协议只有.h文件)
student.h文件的声明(主要体现在遵循协议上)
student.m文件的实现,(执行协议相关方法)
五、掌握delegate的使用(代理)
1.Protocol的核心使用场景是实现delegate设计模式
2.delegate音译代理。通俗的讲就是代理商,主要的任务是帮你完成了一些任务
比如:保姆就可以认为是delegate,主要的任务是帮你带孩子、做饭、洗衣服等
3.使用场景:
凡是某些任务自己不去实现,想让别人去实现的时候,就可以指定一个代理,让代理帮你去做。你只需要通知代理去做某些事。
4.代理使用方法:首先建立协议(只有.h文件声明一些方法)
然后让建立类的协议双方分别遵守协议
再次,让协议一方变成另一方的类中的的一个属性,这是建立代理的关键步骤
最后,让双方分别对协议方法进行相应的实现,再调用就可以完成代理事件了!
实例分析:建立一个保姆协议,包含带孩子,做饭等方法。
协议与代理的综合使用
nurseProtocol.h协议声明
mather.h文件 遵循协议,以及引入代理,将保姆代理作为自身的一个属性(代理的标志)此为引入代理的关键步骤
mather.m文件对协议的执行情况
nurse.h文件引入协议并遵循字协议
nurse.m执行协议相关方法