序列化和反序列化

//KeyArchiverTest序列化

//存储plist文件先找到要存储的path

NSString * filePath = [self filePath];

People * p = [[People alloc] init];

//存储数据的优先级按字节大小

p.name=@"序列化";

p.longName=@"序列化与反序列化";

p.age= 18;

//先对它进行序列化NSKeyedArchiver归档(转化为NSData) NSKeyedArchiver调用方法archivedDataWithRootObject

//1.BOOL类型的方法转化boolValue

//NSData * peopleData1 = [[NSKeyedArchiver archiveRootObject:p toFile:filePath]boolValue];

//2.NSKeyedArchiver

NSData* peopleData = [NSKeyedArchiver archivedDataWithRootObject:p];

//把二进制数写入本地

[peopleData writeToFile:filePath atomically:YES];

//NSLog(@"%@",peopleData);

//反序列化NSKeyedUnarchiver

//NSData * data = [NSKeyedUnarchiver unarchiveObjectWithFile:filePath];

//首先要把二进制数据从文件中读取出来

NSData* data = [NSData dataWithContentsOfFile:filePath];

//对读取出来的二进制数进行反序列化

People *p1 = [NSKeyedUnarchiver unarchiveObjectWithData:data];

NSLog(@"%@",p1.longName);

NSLog(@"%@",p1.name);

NSString* str = [[NSString alloc] initWithData:people Dataencoding:NSUTF8StringEncoding];

NSLog(@"%@",str);//null

}

- (NSString *)filePath {

//获得沙盒根目录

NSString * hamePath =NSHomeDirectory();

//拼接文件路径

NSString * filePath = [hamePathstringByAppendingString:@"/Documents/arra.plist"];

//返回类型

NSLog(@"%@",filePath);

return filePath;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Foundation框架的归档功能 将对象存储转换为二进制序列的过程成为归档、打包或编码,逆变换称为解档、解码或对...
    西门淋雨阅读 5,188评论 0 0
  • //联系人:石虎QQ: 1224614774昵称:嗡嘛呢叭咪哄 前言 1到底这个序列化有啥作用? 面向对象的程序在...
    石虎132阅读 6,210评论 0 10
  • 定义以及相关概念 互联网的产生带来了机器间通讯的需求,而互联通讯的双方需要采用约定的协议,序列化和反序列化属于通讯...
    Liberalism阅读 3,359评论 0 0
  • 1. Java序列化和反序列化(What) Java序列化(Serialize)是指将一个Java对象写入IO流中...
    悠扬前奏阅读 4,390评论 2 1
  • 回来后一直伏在栏杆上看空中的月亮。四围渐渐地安静下来了,渐渐地冰冷清醒。月的美也许就是因为它的“唯一”和“孤独”吧...
    冰眉铁面阅读 3,021评论 1 6

友情链接更多精彩内容