归档(archive)文件(二)

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];


希望对您有所帮助!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值