对象归档 解档
来源:互联网 发布:英伟达掌机 知乎 编辑:程序博客网 时间:2024/05/16 07:29
首先为什么我们要实现对象的归档了?
原因:有时候需要直接将对象存储 NSUserDefaults 或者plist文件中。
ActivityObj.h 实现NSCoding协议
@interface ActivityObj : NSObject<NSCoding>
@property (nonatomic, strong) NSURL *activityImgUrl; //活动海报@property (nonatomic, strong) NSString *activityId; //活动Id@property (nonatomic, strong) NSString *activityName; //活动名称@property (nonatomic, strong) NSURL *activityLinkUrl; //活动链接@end
ActivityObj,m 需要实现
encodeWithCoder 和 initWithCoder 方法
#import "ActivityObj.h"#define ACTIVITYIMG @"activityImg"#define ACTIVITYID @"activityId"#define ACTIVUTYNAME @"activityName"@implementation ActivityObj- (id)initWithCoder:(NSCoder *)aDecoder{ self = [super init]; if(self != nil) { self.activityImgUrl = [aDecoder decodeObjectForKey:ACTIVITYIMG]; self.activityId = [aDecoder decodeObjectForKey:ACTIVITYID]; self.activityName = [aDecoder decodeObjectForKey:ACTIVUTYNAME]; } return self;}- (void)encodeWithCoder:(NSCoder *)aCoder{ [aCoder encodeObject:self.activityImgUrl forKey:ACTIVITYIMG]; [aCoder encodeObject:self.activityId forKey:ACTIVITYID]; [aCoder encodeObject:self.activityName forKey:ACTIVUTYNAME];}@end
将对象保存到NSUserDefaults中 需要把对象转成NSData类型
NSUserDefaults *udf = [NSUserDefaults standardUserDefaults]; NSData *data = [NSKeyedArchiver archivedDataWithRootObject:obj]; [udf setObject:data forKey:key]; [udf synchronize];
将对象从NSUserDefaults取出来
id obj = [[NSUserDefaults standardUserDefaults] objectForKey:key];if([obj isKindOfClass:[NSData class]]){ //如果保存的是对象,那么先取得NSData数据再转成对象,然后返回 return [NSKeyedUnarchiver unarchiveObjectWithData:obj]; }else{ return obj; }
将对象存储到plist文件中方法类似都是将对象转成NSData进行存储
0 0
- 对象归档 解档
- 自定义对象归档、解档
- 自定义对象归档(解档)
- 对象归档
- 对象归档
- 对象归档
- 对象归档
- iOS 对象的归档、解档 runtime
- 归档自定义对象
- 利用NSKeyedArchiver归档对象
- IOS --- 对象归档
- Object2 7、对象归档
- IOS --- 对象归档
- ios对象归档
- Swift实现对象归档
- OC对象归档
- IOS存储对象(归档)
- 对象归档/属性列表
- JFreeChart 参数配置
- 黑马程序员-多线程
- World Wind Java开发之七——读取本地栅格文件(影像+高程)构建三维场景
- MVC上传图片
- 日志写入sd卡方便程序员的远程查看
- 对象归档 解档
- Android APK反编译就这么简单 详解(附图)
- Tomcat:IOException while loading persisted sessions: java.io.EOFException
- Android TextView属性大全
- 三、Eclipse SDK中一些插件的安装(web开发插件)
- Java中getResourceAsStream的用法
- Spring Security详解
- qt Qlist<T*>
- Photoshop绘制扑克牌游戏UI界面教程