Objective-C基础 自定义对象归档详解及简单实例
自定义对象要实现归档必须实现NSCoding协议
NSCoding协议有两个方法,encodeWithCoder方法对对象的属性数据做编码处理,initWithCoder解码归档数据来初始化对象。
示例1
.h头文件
#import@interfaceuser:NSObject @property(nonatomic,retain)NSString*name; @property(nonatomic,retain)NSString*email; @property(nonatomic,retain)NSString*pwd; @property(nonatomic,assign)intage; @end
.m实现文件
#import"user.h"
#defineAGE@"age"
#defineNAME@"name"
#defineEMAIL@"email"
#definePASSWORD@"password"
@implementationuser
//对属性编码
-(void)encodeWithCoder:(NSCoder*)aCoder
{
[aCoderencodeInt:_ageforKey:@"age"];
[aCoderencodeObject:_nameforKey:AGE];
[aCoderencodeObject:_emailforKey:EMAIL];
[aCoderencodeObject:_pwdforKey:PASSWORD];
}
//对属性解码
-(id)initWithCoder:(NSCoder*)aDecoder
{
self=[superinit];
if(self)
{
self.age=[aDecoderdecodeIntForKey:AGE];
self.name=[aDecoderdecodeObjectForKey:NAME];
self.email=[aDecoderdecodeObjectForKey:EMAIL];
self.pwd=[aDecoderdecodeObjectForKey:PASSWORD];
}
returnself;
}
-(void)dealloc
{
[_namerelease];
[_emailrelease];
[_pwdrelease];
[superdealloc];
}
@end
main函数的调用
user*userObj=[[useralloc]init];
userObj.age=33;
userObj.email=@"adfdadf@qq.com";
userObj.pwd=@"212212";
userObj.name=@"ricard";
NSString*path=[NSHomeDirectory()stringByAppendingPathComponent:@"Desktop/custom.text"];
BOOLsucc=[NSKeyedArchiverarchiveRootObject:userObjtoFile:path];
if(succ){
NSLog(@"Hello,World!");
user*usertemp=[NSKeyedUnarchiverunarchiveObjectWithFile:path];
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
热门推荐
7 简短的二胎祝福语
10 简短霸气女儿生日 祝福语
11 祝福语高考小众诗句简短
12 元旦祝福语20秒简短
13 老师过年祝福语大全 简短
14 一生祝福语简短
15 产检祝福语简短霸气
16 朋友店开张祝福语简短
17 生日爱情祝福语大全简短
18 朋友女儿生日祝福语 简短