文件加载与保存



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)

你可能感兴趣的:(byte)