http://blog.sina.com.cn/s/blog_7b9d64af01019kw8.html
可以参见我的第一篇关于归档的说明。
归档(archive)文件(一)
考虑如下情况:
1.我们有很多不同的对象需要归档,并且对象之间可能相差很大,每次进行归档麻烦,效率也不高。
2.被归档的对象不确定有多少个。
3.希望将不同对象归档到一个文件中,易于操作。
所以,如果我们能够全部将需要归档的对象首先存放在一个空间中,然后,一次性归档。这样做,那就方便多了!
这就是今天的主角登场!使用NSData和NSMutableData来进行归档!
由于,前面篇幅的说明,只需要贴代码了:
NSMutableData *dataArear=[NSMutableData data];
NSKeyedArchiver *archiver=[[NSKeyedArchiver alloc] initForWritingWithMutableData:dataArear];
[archiver encodeObject:objArray forKey:@"AddressCard_Array"];
[archiver encodeObject:card1 forKey:@"AddressCard_SingleObj"];
[archiver finishEncoding];
[archiver release];// 注意释放
BOOL isOk=[dataArear writeToFile:filePhyName atomically:YES];
if (isOk) {
NSLog(@"Success!");
}else{
NSLog(@"False!");
}
NSMutableData *theData=[NSMutableData dataWithContentsOfFile:filePhyName];
NSKeyedUnarchiver *unarchiver=[[NSKeyedUnarchiver alloc] initForReadingWithData:theData];
NSMutableArray *cardArray=[unarchiver decodeObjectForKey:@"AddressCard_Array"];
AddressCard *theCard=[unarchiver decodeObjectForKey:@"AddressCard_SingleObj"];
[unarchiver finishDecoding];
[unarchiver release];// 注意释放
for (AddressCard *theCard in cardArray) {
[theCard print];
}
[theCard print];
希望对您有所帮助!