全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Objective-C基础 自定义对象归档详解及简单实例

自定义对象要实现归档必须实现NSCoding协议

 NSCoding协议有两个方法,encodeWithCoder方法对对象的属性数据做编码处理,initWithCoder解码归档数据来初始化对象。

示例1

.h头文件

 #import <Foundation/Foundation.h>
 @interface user : NSObject <NSCoding>
 @property(nonatomic,retain)NSString *name;
 @property(nonatomic,retain)NSString *email;
 @property(nonatomic,retain)NSString *pwd;
 @property(nonatomic,assign)int age;
 @end

.m实现文件

#import "user.h"
#define AGE @"age"
#define NAME @"name"
#define EMAIL @"email"
#define PASSWORD @"password"
@implementation user
//对属性编码
- (void)encodeWithCoder:(NSCoder *)aCoder
{
  [aCoder encodeInt:_age forKey:@"age"];
  [aCoder encodeObject:_name forKey:AGE];
  [aCoder encodeObject:_email forKey:EMAIL];
  [aCoder encodeObject:_pwd forKey:PASSWORD];
}
//对属性解码
- (id)initWithCoder:(NSCoder *)aDecoder
{
  self=[super init];
  if(self)
  {
    self.age=[aDecoderdecodeIntForKey:AGE];
    self.name=[aDecoderdecodeObjectForKey:NAME];
    self.email=[aDecoderdecodeObjectForKey:EMAIL];
    self.pwd=[aDecoderdecodeObjectForKey:PASSWORD];
  }
  return self;
}
-(void)dealloc
{
  [_name release];
  [_email release];
  [_pwd release];
  [super dealloc];
}
@end

main函数的调用

  user *userObj=[[user alloc] init];
  userObj.age=33;
  userObj.email=@"adfdadf@qq.com";
  userObj.pwd=@"212212";
  userObj.name=@"ricard";
  NSString *path=[NSHomeDirectory() stringByAppendingPathComponent:@"Desktop/custom.text"];
  BOOL succ=[NSKeyedArchiver archiveRootObject:userObj toFile:path];
  if (succ) {
     NSLog(@"Hello, World!");
     user *usertemp=[NSKeyedUnarchiver unarchiveObjectWithFile:path];
  }

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# Objective-C基础自定义对象归档  # IOS  # 开发自定义对象归档  # 希望能  # 自定义  # 谢谢大家  # 头文件  # 有两个  # int  # nonatomic  # cpp  # age  # assign  # email  # NSString  # pwd  # retain  # void  # implementation  # aCoder  # NSCoder  # password 


相关文章: 如何实现建站之星域名转发设置?  如何零基础开发自助建站系统?完整教程解析  建站之星logo尺寸如何设置最合适?  湖州网站制作公司有哪些,浙江中蓝新能源公司官网?  如何高效配置IIS服务器搭建网站?  如何获取免费开源的自助建站系统源码?  建站中国必看指南:CMS建站系统+手机网站搭建核心技巧解析  如何零成本快速生成个人自助网站?  php条件判断怎么写_ifelse和switchcase的使用区别【对比】  建站与域名管理如何高效结合?  ,在苏州找工作,上哪个网站比较好?  Swift开发中switch语句值绑定模式  如何高效利用亚马逊云主机搭建企业网站?  大学网站设计制作软件有哪些,如何将网站制作成自己app?  网站制作软件免费下载安装,有哪些免费下载的软件网站?  高配服务器限时抢购:企业级配置与回收服务一站式优惠方案  建站主机是否等同于虚拟主机?  如何通过虚拟机搭建网站?详细步骤解析  Android滚轮选择时间控件使用详解  如何在服务器上三步完成建站并提升流量?  建站之星安装后界面空白如何解决?  北京专业网站制作设计师招聘,北京白云观官方网站?  制作网站的软件免费下载,免费制作app哪个平台好?  台州网站建设制作公司,浙江手机无犯罪记录证明怎么开?  宝塔建站教程:一键部署配置流程与SEO优化实战指南  如何快速查询网站的真实建站时间?  如何在云指建站中生成FTP站点?  如何通过山东自助建站平台快速注册域名?  在线流程图制作网站手机版,谁能推荐几个好的CG原画资源网站么?  完全自定义免费建站平台:主题模板在线生成一站式服务  如何自定义建站之星网站的导航菜单样式?  实现点击下箭头变上箭头来回切换的两种方法【推荐】  如何快速生成橙子建站落地页链接?  如何通过老薛主机一键快速建站?  如何在Windows环境下新建FTP站点并设置权限?  昆明网站制作哪家好,昆明公租房申请网上登录入口?  如何快速搭建安全的FTP站点?  如何选择高效便捷的WAP商城建站系统?  免费制作小说封面的网站有哪些,怎么接网站批量的封面单?  Python lxml的etree和ElementTree有什么区别  如何快速搭建FTP站点实现文件共享?  如何彻底删除建站之星生成的Banner?  c# 服务器GC和工作站GC的区别和设置  名字制作网站免费,所有小说网站的名字?  如何通过wdcp面板快速创建网站?  已有域名如何免费搭建网站?  制作营销网站公司,淘特是干什么用的?  广州顶尖建站服务:企业官网建设与SEO优化一体化方案  制作表格网站有哪些,线上表格怎么弄?  网站制作的步骤包括,正确网址格式怎么写? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。