Obj-C中的NSDate 、文件讀寫、序列化和反序列化

NSData *data = [NSData data]; //獲取當前時間
NSLog ("Today is %@", data);


NSArray *phrase;    
phrase = [NSArray arrayWithObjects: @「x」, @「y」, @「z」, @「end」];
[phrase writeToFile: @「/tmp/varbiage.txt」 atomically: YES];  
// 這裏的YES是一種安全機制。寫入文件時先寫入到臨時文件,等結束後再將臨時文件與原始文件交換。這樣能夠保證在
// 出現意外的時候(斷電),不會破壞原始文件,但須要額外的空間。

//NSArray,NSDictionary  的writeToFile方法
// 能夠將屬性列表寫入文件,會存儲成xml格式文件

//NSString 和NSDate 的writeToFile方法 只能寫出字符串或者數據塊

NSArray *phrase2 = [NSArray arrayWithContentsOfFile: @「/tmp/verbiage.txt」];
NSLog(@「%@」, phrase2); //解析文件成一個數組


Cocoa具有一種機制來將對面自身轉換成某種格式並保存到磁盤中。
對象能夠將它們的實例變量和其餘數據編碼爲數據塊,而後保存到磁盤中。之後將這些數據塊讀回到內存中,而且還能基於保存的數據建立新對象。
這個過程成爲編碼和解碼,也叫序列化和反序列化。
@protocol NSCoding
-(void) encodeWithCoder: (NSCoder *)aCoder;
-(id) initWithCoder: (NSCoder *)aDecder;
@end
採用該協議:
1.當須要保存自身時,調用-(void) encodeWithCoder: (NSCoder *)aCoder
2.當須要加載自身時,調用-(id) initWithCoder: (NSCoder *)aDecder
//NSCoder 是一個抽象類,定義一些有用的方法來在對象與NSData之間來回轉換
相關文章
相關標籤/搜索