自定义数据类型的序列化
来源:互联网 发布:成都历史气象数据查询 编辑:程序博客网 时间:2024/06/05 17:51
1、为自定义数据类型添加 NSCoding 协议,实现该协议的接口
- (void)encodeWithCoder:(NSCoder *)aCoder;- (id)initWithCoder:(NSCoder *)aDecoder;
2、序列化对象的属性
id 类型的属性直接用 aCoder encodeObject: forKey: 序列化;
基础数值类型要用 NSNumber 封装后再进行序列化。
- (void)encodeWithCoder:(NSCoder *)aCoder{ [aCoder encodeObject:self.regionName forKey:@"regionName"]; NSNumber *lon = [NSNumber numberWithDouble:self.location.longitude]; NSNumber *lat = [NSNumber numberWithDouble:self.location.latitude]; [aCoder encodeObject:lon forKey:@"regionLon"]; [aCoder encodeObject:lat forKey:@"regionLat"];}
3、反序列化对象的属性
使用 aDecoder decodeObjectForKey: 反序列化类型属性。
- (id)initWithCoder:(NSCoder *)aDecoder{ self = [super init]; if (self) { self.regionName = [aDecoder decodeObjectForKey:@"regionName"]; NSNumber *lon = [aDecoder decodeObjectForKey:@"regionLon"]; NSNumber *lat = [aDecoder decodeObjectForKey:@"regionLat"]; CLLocationCoordinate2D location; location.longitude = [lon doubleValue]; location.latitude = [lat doubleValue]; self.location = location; } return self;}
// 对象序列化成文件时保存的路径#define FileSavePath ([NSHomeDirectory() stringByAppendingPathComponent:@"RegionList.plist"])
序列化对象到文件
[NSKeyedArchiver archiveRootObject:objectID toFile:path];
从文件中反序列化数据到对象
id obj = [NSKeyedUnarchiver unarchiveObjectWithFile:path];
0 0
- 自定义数据类型的序列化
- Hadoop入门(七)之java对应的Hadoop数据类型及自定义类型序列化
- 用来序列化通用的数据类型
- Hadoop的序列化和数据类型
- MFC自定义的数据类型
- MFC自定义的数据类型
- 自定义的数据类型
- Gson的自定义序列化的方法
- 序列化---自定义序列化
- Hadoop系列-MapReduce自定义数据类型(序列化、反序列化机制)(十二)
- 基于Axis的自定义对象序列化
- 基于Axis的自定义对象序列化
- 基于Axis的自定义对象序列化
- 自定义序列化 ISerializable 的实现
- Hadoop自定义可序列化的类
- JAVA自定义序列化的神奇方法
- JSON的自定义序列化和解析
- Unity自定义类的序列化
- 设置触摸代理的方法
- HDU 4279 Number 坑爹的迷之精度
- hdoj-1086-You can Solve a Geometry Problem too 判断线段是否相交
- Android切换页面效果的实现二:WebView+ViewPager
- uva 673 Parentheses Balance
- 自定义数据类型的序列化
- shell内部命令和外部命令
- 1336 - Fixing the Great Wall(DP)
- 欢迎使用CSDN-markdown编辑器
- 使用中国网建实现Java向手机发送短信的功能
- Android应用开发之(WebView中loadData与loadDataWithBaseURL的使用上的区别)
- Qt学习之一,键盘事件细节
- glActiveTexture
- OC中的数组