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

 更新时间:2017年04月08日 10:24:30   投稿:lqh  
这篇文章主要介绍了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];
  }

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

相关文章

  • iOS自定义日期demo分享

    iOS自定义日期demo分享

    这篇文章主要为大家详细介绍了iOS自定义日期演示效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-09-09
  • 详解iOS App设计模式开发中对于享元模式的运用

    详解iOS App设计模式开发中对于享元模式的运用

    这篇文章主要介绍了iOS App设计模式开发中对于享元模式的运用,示例代码为传统的Objective-C,需要的朋友可以参考下
    2016-04-04
  • iOS实现九宫格自动生成视图

    iOS实现九宫格自动生成视图

    这篇文章主要为大家详细介绍了iOS实现九宫格自动生成视图的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-03-03
  • IOS 开发之应用唤起实现原理详解

    IOS 开发之应用唤起实现原理详解

    这篇文章主要介绍了IOS 开发之应用唤起实现原理详解的相关资料,需要的朋友可以参考下
    2016-12-12
  • ios开发:一个音乐播放器的设计与实现案例

    ios开发:一个音乐播放器的设计与实现案例

    本篇文章主要介绍了ios开发:一个音乐播放器的设计与实现案例,具有一定的参考价值,有需要的小伙伴可以参考下。
    2016-11-11
  • IOS实现图片轮播无限循环效果

    IOS实现图片轮播无限循环效果

    这篇文章主要为大家详细介绍了IOS实现图片轮播无限循环效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-03-03
  • iOS9提示框的正确使用方式

    iOS9提示框的正确使用方式

    这篇文章主要为大家详细介绍了iOS9提示框的正确使用方式,iOS8升级到iOS9的过程,弹出提示框的方式有了很大的改变,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • iOS实现九宫格连线手势解锁

    iOS实现九宫格连线手势解锁

    这篇文章主要为大家详细介绍了iOS实现九宫格连线手势解锁,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-04-04
  • iOS 真机调试微信小程序

    iOS 真机调试微信小程序

    下面介绍下如何使用 Xcode、Reveal 和 Safari 来真机调试 iOS 上的小程序。感兴趣的朋友跟随脚本之家小编一起看看吧
    2018-08-08
  • iOS键盘弹出遮挡输入框的解决方法

    iOS键盘弹出遮挡输入框的解决方法

    这篇文章主要为大家详细介绍了iOS键盘弹出遮挡输入框的解决方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-01-01

最新评论