国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網(wǎng)站 > 建站經(jīng)驗(yàn) > 正文

ios的文件_加載和保存

2019-11-02 14:46:39
字體:
供稿:網(wǎng)友

 

1、使用屬性列表保存對(duì)象:
在Cocoa中,與一類名為屬性列表的對(duì)象,常簡稱為plist。這些列表包含Cocoa知道如何操作的一組對(duì)象。具體來講,Cocoa知道如何將它們保存到文件中并進(jìn)行加載。屬性列表類包括:NSArray,NSDictionary,NSString和NSData,以及它們的變體(Mutable)

 

NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];   NSArray *array = [NSArray arrayWithObjects:@"First",                                 @"second",@"third",@"fourth",@"fifth",nil];   [array writeToFile:@"array.plist" atomically:YES];  

 

 

2、編碼對(duì)象
遺憾的是,無法總是將對(duì)象信息表示為屬性列表類。如果能將所有對(duì)象都表示為數(shù)組字典,我們就沒有必要使用自己的類了。所幸,Cocoa具備一種機(jī)制來將對(duì)象自身轉(zhuǎn)化為某種格式并保存到磁盤中。對(duì)象可以將它們的實(shí)例變量和其它數(shù)據(jù)編碼為數(shù)據(jù)塊,然后保存到磁盤中。遺憾將這些數(shù)據(jù)塊讀到內(nèi)存中,并且還能基于保存的數(shù)據(jù)創(chuàng)建新對(duì)象。這個(gè)過程稱為編碼和解碼,或稱為序列化和反序列化。
    通過NSCoding協(xié)議,可以使用自己的對(duì)象實(shí)現(xiàn)相同功能,實(shí)現(xiàn)它的兩個(gè)方法: 
- (void)encodeWithCoder:(NSCoder *)aCoder;
- (id)initWithCoder:(NSCoder *)aDecoder;
NSCoder是一個(gè)抽象類,定義一些有用的方法來在對(duì)象與NSData之間來回轉(zhuǎn)換。完全不需要?jiǎng)?chuàng)建新NSCoder,因?yàn)樗录喜o多大作用。但是我們實(shí)際上要使用NSCoder的一些具體子類來編碼和解碼對(duì)象。我們將使用其中兩個(gè)子類NSKeyedArchiver和NSKeyedUnArchiver.
下面是一個(gè)例子:
頭文件類BookObj.h的源碼:

 

 

//   //  BookObj.h      //      #import <Cocoa/Cocoa.h>   @interface BookObj:NSObject<NSCoding>{       NSString *bookName;       NSString *author;   }      @property (copy) NSString *bookName;   @property (copy) NSString *author;         -(id)initWithName:(NSString *)name              author:(NSString *) au ;    

 

實(shí)現(xiàn)類BookObj.m的源碼:


//   //  BookObj.m      //   #import "BookObj.h"         @implementation BookObj      @synthesize bookName;   @synthesize author;   -(id)initWithName:(NSString *)name              author:(NSString *) au{       if (self = [super init]) {           self.bookName = name;           self.author = au;       }       return self;   }      - (void)encodeWithCoder:(NSCoder *)aCoder{       [aCoder encodeObject:self.bookName forKey:@"bookName"];       [aCoder encodeObject:self.author    forKey:@"author"];   }   - (id)initWithCoder:(NSCoder *)aDecoder{       if (self =[super init]) {           self.bookName = [aDecoder decodeObjectForKey:@"bookName"];           se
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 荆州市| 岑巩县| 涞水县| 土默特右旗| 沅江市| 佛山市| 扬中市| 出国| 石屏县| 长宁县| 宣恩县| 吴堡县| 东乌珠穆沁旗| 桦甸市| 南丹县| 久治县| 梅河口市| 博白县| 洛宁县| 旬阳县| 佛学| 韶山市| 永善县| 垦利县| 嘉义市| 新宾| 留坝县| 合江县| 马鞍山市| 巩留县| 九龙城区| 牙克石市| 平泉县| 金溪县| 新巴尔虎右旗| 嘉义县| 正定县| 新丰县| 家居| 霍林郭勒市| 皮山县|