object-c中归档的用法
2013-05-04 23:05 甘超波 阅读(1427) 评论(0) 收藏 举报
下面是归档的例子
//
// main.m
// ArchiveDemo
//
// Created by ganchaobo on 13-5-4.
// Copyright (c) 2013年 ganchaobo. All rights reserved.
//
#import <Foundation/Foundation.h>
void archive1(){
//******************************************归档第一种方法
NSArray *arr=[NSArray arrayWithObjects:@"11",@"vv",@"tt", nil];
//归档(即序列化)archiveRootObject
NSString *path=@"/Users/ganchaobo/Desktop/archiver.text";
BOOL iskeyedarchiver= [NSKeyedArchiver archiveRootObject:arr toFile:path];
if(iskeyedarchiver){
NSLog(@"archive success ");
}
//*******************************************对应的解归档
NSArray *unarchivearr =[NSKeyedUnarchiver unarchiveObjectWithFile:path];
NSLog(@"%@",unarchivearr);
}
void archive2(){
//******************************************归档第2种方法
NSString *path1=@"/Users/ganchaobo/Desktop/archiver1.text";
NSMutableData *date=[NSMutableData data];
//初始化时要把归档的内容放在date中
NSArray *arr=[NSArray arrayWithObjects:@"yuwen",@"math", nil];
NSKeyedArchiver *archive= [[[NSKeyedArchiver alloc] initForWritingWithMutableData:date]autorelease];
//下面时把内容归档到一个date里面取
[archive encodeFloat:1.81 forKey:@"height"];
[archive encodeObject:@"zs" forKey:@"name"];
[archive encodeObject:@"23" forKey:@"age"];
[archive encodeObject:arr forKey:@"kemu"];
[archive finishEncoding];
[date writeToFile:path1 atomically:YES];//此时date数据时归档后的数据,然后写入指定的文件
//*******************************************对应的解归档
NSData *date1=[NSData dataWithContentsOfFile:path1];//读取内容
NSKeyedUnarchiver *unarchive= [[[NSKeyedUnarchiver alloc] initForReadingWithData:date1] autorelease];
NSLog(@"%f",[unarchive decodeFloatForKey:@"height"]);
NSLog(@"%@",[unarchive decodeObjectForKey:@"name"]);
NSLog(@"%@",[unarchive decodeObjectForKey:@"age"]);
NSLog(@"%@",[unarchive decodeObjectForKey:@"kemu"]);
}
int main(int argc, const char * argv[])
{
@autoreleasepool {
archive2();
}
return 0;
}
目前我正在专注NLP,请立刻加微信/QQ号 546611623, 免费送你原创《NLP高级执行师》高清视频
浙公网安备 33010602011771号