首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

存档

2013-03-27 
归档归档概念:在Objective-c术语中,归档是指用某种式来保存一个对象,以便以后还原这些对象的过程。通常这个

归档

归档

       概念:在Objective-c术语中,归档是指用某种格式来保存一个对象,以便以后还原这些对象的过程。通常这个过程包括将(多个)对象写入文件中,以便以后读回该对象。

       两种归档数据的方法:属性列表和带键值的编码。

一、使用XML属性列表进行归档

1、XML属性列表:MAC OS X上的应用程序使用XML属性列表(或plists)束来存储诸如默认参数选择,应用程序设置和配置信息这样的数据。

注:

1>、:这些列表的归档用途是有限的,因为当为某个数据结构创建属性列表时,没有保存特定的对象类,没有存储对同一对象的多个引用,也没有保持对象的可变性。

2>、属性列表归档只针对于Foundation对象

2、将数据以XML格式写出:当你的对象是NSString、NSDictionary、NSArray、NSData或NSNumber对象,你可以使用在这些类中实现的writeToFile: atomically: 方法将数据写到文件中。

3、将XML属性列表读入程序:使用dictionaryWithContentsOfFile: 或arrayWithContentsOfFile:方法。

注:读回数据使用dataWithContentsOfFile: 方法,要读回字符串对象,使用stringWithContentsOfFile; 方法。

4、例--

#import <Foundation/NSObject.h>#import <Foundation/NSAutoreleasePool.h>#import <Foundation/NSString.h>#import <Foundation/NSKeyedArchiver.h>#import <Foundation/NSArray.h>int main (int argc, char *argv[]){NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];NSData *data;NSMutableArray *dataArray = [NSMutableArray arrayWithObjects:[NSMutableString stringWithString: @"one"],[NSMutableString stringWithString: @"two"],[NSMutableString stringWithString: @"three"],nil];    NSMutableArray *dataArray2;NSMutableString *mStr;// Make a deep copy using the archiverdata = [NSKeyedArchiver archivedDataWithRootObject: dataArray];dataArray2 = [NSKeyedUnarchiver unarchiveObjectWithData: data];  mStr = [dataArray2 objectAtIndex: 0];[mStr appendString: @"ONE"];NSLog (@"dataArray: ");for ( NSString *elem in dataArray )NSLog ("%@", elem);NSLog (@"\ndataArray2: ");for ( NSString *elem in dataArray2 )NSLog ("%@", elem);[pool drain];return 0;}

2楼liz3003前天 22:16
写的真好!
1楼liz3003前天 22:16
真心有用!

热点排行