NSDate的使用 NSDate是Cocoa中用于处理日期和时间的基础类,封装类某一给定的时刻,具体的日期,时间和时区 使用+date方法获取当前日期和时间 例如 :NSDate*nowDate = [NSDate date]; 注意,,NSLog(@“%@”,nowDate); 无论你是哪个时区的时间,打印时间,打印时总是打印对应的0时区时间
NSTimeinterval
NSTimeInterval(即double类型) 用以表示以秒为单位的时间间隔
可以使用-initWithTimeIntervalSinceNow:方法传入一个NSTimeInterval参数,创建一个 NSDate对象
例如:NSDate * tomorrowDate = [[NSDate alloc] initWithTimeIntervalSinceNow:24*60 * 60];
NSDate * yesterdayDate = [[NSDate alloc] initWithTimeIntervalSinceNow:-1 * 24*60 *60];
取两个时间对象的间隔:NSTimeinterval = [tomorrowDate timeIntervalSinceDate:yesterdayDate];
NSDateFormatter的使用 1. NSDateFormatter是iOS中的日期格式类,主要的功能是实现 代表日期的NSString和
SDate的互转,提供了系统预置的字符串格式,还允许用户自定义字符串格式。 我们可以设置时区、月的名称、纪元的符号、local、calender、AM/PM、weekday的符号 常见的时间格式化字符串有以下一些:y 年、 M 年中的月份 、d 月份中的天数、 H 一
中的小时数(0-23)、 h am/pm 中的小时数(1-12)、m 小时中的分钟数 、s 分钟中的秒数
指定日期格式: NSDateFormatter * formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
2. NSDateFormatter可以将日期转化为相对应的字符串,同样可以将字串转化为相对应的日期。 日期转化为字符串: NSDateFormatter*formatter =NSDateFormatter alloc] init]; [formatter setDateFormat:@"yyyy-MM-dd hh:mm:ss"];
NSString *dateString=[formatter stringFromDate: [NSDate date]];
3.
时间字符串转化为相对应的日期:NSDateFormatter * formatter =[[NSDateFormatter alloc] init]; [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSString * dateStr = @”2008-08-08 20:08:08”; NSDate * date = [formatter dateFromString:dateStr];
类目Category Category的定义 新建文件
选择Objective-C Category模板 填写类名和分类名 .h文件添加方法声明
.m添加方法实现 需要使用的地方进行调用。
Category的声明 Category的实现 NSString+SayHi.m文件 #import “NSString+SayHi.h”
@implementation NSString(SayHi) - (void)hi{
NSLog(@”这是通过category为NSString添加的hi方法”); }
@end
Category与子类的区别
Extension
Extension的主要作用是为类添加“私有”方法。
面向对象编程的另外一个名字叫面向接口编程。
我们在设计一个类的时候,有些方法需要对外公开(我们称为接口),有些方法可能仅仅内部使用(比如:是某个方法的一个小步骤)。 Extension的功能是帮我们去管理这些内部使用的方法(“私有”方 法)。
定义Extension 定义Extension Extension的实现 @implementation xxx //方法的实现
@end
Category和Extension的区别 Protocol Protocol
协议就像一张任务清单(或便利贴),上面写了一堆需要处理的事。清单交给谁,谁就要去完成清单上规定的任务。 协议定义好之后,需要有类去遵守这个协议,实现协议里面的方法。 遵守协议即在.h文件的父类名后写上<协议名]]>。实现协议里的方法即在.m文件中实现协议中的方法。相当于给这个类添加了若干个
方法。这个类的实例就可以调用这些方法。
定义Protocol
@protocol开始,以@end结束,例如: @protocol MarryProtocol <NSObject> - (void)makeMoney;
@optional //可选的协议, - (void)washcloth; - (void)cook; @end 协议中的方法默认是必须实现的,即@required关键字 @optional 修饰的方法是可选的,可实现也可不实现。
如何遵守协议
delegate设计模式 Protocol的核心使用场景是实现delegate设计模式。 delegate音译代理。通俗的讲就是代理商,主要的任务是帮你完成一些任务。 比如:保姆就可以认为是delegate,主要的任务是帮你带孩子、做饭、洗衣服等。
|