1.属性列表
属性列表类包括:
简写成plist
NSArray,NSDictionary,NSString,NSNumber,NSDate,NSData及它们的变体。
2.NSDate 与 NSData
NSDate 获取当前日期和时间,是自动释放的对象。
获取与当前时间相隔的时间差
+ (id)dateWithTimeIntervalSinceNow:(NSTimeInterval)secs;
参数:
NSTimeInterval 是一个双精度参数,表示以秒为单位的时间间隔,正数为将来的时间,负数为过去的时间。
日期比较:
- (NSDate *)earlierDate:(NSDate *)anotherDate;//返回较早的日期
- (NSDate *)laterDate:(NSDate *)anotherDate;//返回较晚的日期
- (NSComparisonResult)compare:(NSDate *)other;
- (BOOL)isEqualToDate:(NSDate *)otherDate;//相同,返回yes
排序:
- (NSComparisonResult)compare:(NSDate *)other;
取时间间隔:
- (NSTimeInterval)timeIntervalSinceDate:(NSDate *)anotherDate;
- (NSTimeInterval)timeIntervalSinceNow;
- (NSTimeInterval)timeIntervalSince1970;
将时间表示成字符串:
- (NSString *)description;
-------------------------------------------------------------------------------
NSData
//NSString 转换成NSData对象:
NSData *xmldata = [@"tesedata" dataUsingEncoding:NSUTF8StringEncoding];
//NSData 转换成NSString对象:
NSString *result = [[NSString alloc]initWithData:dataencoding:NSUTF8StringEncoding];
//NSData 转换成char
char *test = [data bytes];
//char转换成NSData
Byte *tempData = malloc(sizeof(Byte)*16);
NSData *content = [NSData dataWithBytes:tempData length:16];
3.读写属性列表
使用属性列表归档只针对属性列表类对象
写入文件:
集合属性列表类具有一个writetofile:atomically: 方法用语将属性列表写入文件
非集合属性列表类:也具有以上方法,但只能写出字符串
4.编码对象
NSCoder 是一个抽象类,定义了一些有用的方法来在对象与NSData之间转换。
实际使
NSKeyedArchiver
NSKeyedUnarchiver
哪些类可以直接使用NSCopying协议;哪些类需要自己实现该协议?
某些核心的基础类可以直接使用,其他类需要使用该协议,然后采用协议的类中,实现协议定义的方法(copywithzone);
哪些类可以直接使用NSCoding协议;哪些类需要自己实现该协议?
某些核心的基础类可以直接使用,其他类需要使用该协议,然后采用协议的类中,实现协议定义的方法();
(encodeWithCoder\initWithCoder)
调用编码方法:
本章总结:
掌握属性列表类的概念
掌握NSDate\NSData类的使用
掌握利用属性列表类的性质写入和读取文件
掌握使用NSCoding协议对对象进行编码,解码。
1.属性列表
属性列表类包括:
简写成plist
NSArray,NSDictionary,NSString,NSNumber,NSDate,NSData及它们的变体。
2.NSDate 与 NSData
NSDate 获取当前日期和时间,是自动释放的对象。
获取与当前时间相隔的时间差
+ (id)dateWithTimeIntervalSinceNow:(NSTimeInterval)secs;
参数:
NSTimeInterval 是一个双精度参数,表示以秒为单位的时间间隔,正数为将来的时间,负数为过去的时间。
日期比较:
- (NSDate *)earlierDate:(NSDate *)anotherDate;//返回较早的日期
- (NSDate *)laterDate:(NSDate *)anotherDate;//返回较晚的日期
- (NSComparisonResult)compare:(NSDate *)other;
- (BOOL)isEqualToDate:(NSDate *)otherDate;//相同,返回yes
排序:
- (NSComparisonResult)compare:(NSDate *)other;
取时间间隔:
- (NSTimeInterval)timeIntervalSinceDate:(NSDate *)anotherDate;
- (NSTimeInterval)timeIntervalSinceNow;
- (NSTimeInterval)timeIntervalSince1970;
将时间表示成字符串:
- (NSString *)description;
-------------------------------------------------------------------------------
NSData
//NSString 转换成NSData对象:
NSData *xmldata = [@"tesedata" dataUsingEncoding:NSUTF8StringEncoding];
//NSData 转换成NSString对象:
NSString *result = [[NSString alloc]initWithData:dataencoding:NSUTF8StringEncoding];
//NSData 转换成char
char *test = [data bytes];
//char转换成NSData
Byte *tempData = malloc(sizeof(Byte)*16);
NSData *content = [NSData dataWithBytes:tempData length:16];
3.读写属性列表
使用属性列表归档只针对属性列表类对象
写入文件:
集合属性列表类具有一个writetofile:atomically: 方法用语将属性列表写入文件
非集合属性列表类:也具有以上方法,但只能写出字符串
4.编码对象
NSCoder 是一个抽象类,定义了一些有用的方法来在对象与NSData之间转换。
实际使
NSKeyedArchiver
NSKeyedUnarchiver
哪些类可以直接使用NSCopying协议;哪些类需要自己实现该协议?
某些核心的基础类可以直接使用,其他类需要使用该协议,然后采用协议的类中,实现协议定义的方法(copywithzone);
哪些类可以直接使用NSCoding协议;哪些类需要自己实现该协议?
某些核心的基础类可以直接使用,其他类需要使用该协议,然后采用协议的类中,实现协议定义的方法();
(encodeWithCoder\initWithCoder)