国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 内江市| 临沧市| 娱乐| 加查县| 扎兰屯市| 桃园市| 华坪县| 蓬莱市| 丰城市| 乡城县| 文山县| 定边县| 东宁县| 汤阴县| 九龙县| 昌黎县| 综艺| 宜黄县| 偃师市| 辽阳市| 呼玛县| 如皋市| 富锦市| 兰溪市| 永德县| 盈江县| 安福县| 辰溪县| 罗源县| 乌兰浩特市| 永新县| 宁津县| 七台河市| 喀什市| 工布江达县| 屯门区| 麦盖提县| 洛隆县| 雷波县| 延寿县| 新疆|