美文网首页
OC中的归档解档

OC中的归档解档

作者: 台灯下的小卫 | 来源:发表于2016-03-12 10:54 被阅读435次

oc中的归档就是把对象写到文件中.

首先模型必须遵守NSCoding协议,并且实现其中的方法 (归档):- (void)encodeWithCoder:(NSCoder*)aCoder;(解档):- (id)initWithCoder:(NSCoder*)aDecoder;


@interfacePerson :NSObject<NSCoding>

@property(nonatomic,copy)NSString*name;//名称

@property(nonatomic,strong)NSNumber*age;//年龄

@property(nonatomic,copy)NSString*occupation;//职业

@property(nonatomic,copy)NSString*nationality;//国籍

@end


/**

*归档***编码

*

*@param aCoder

*/

- (void)encodeWithCoder:(NSCoder*)aCoder{

unsignedintcount =0;

Ivar*ivars =class_copyIvarList([selfclass], &count);

for(NSIntegeri=0; i

Ivarivar = ivars[i];

constchar*iName =ivar_getName(ivar);

NSString*iStr = [NSStringstringWithUTF8String:iName];

idvalue = [selfvalueForKey:iStr];

[aCoderencodeObject:valueforKey:iStr];

}

free(ivars);

}

//解码

- (id)initWithCoder:(NSCoder*)aDecoder{

self= [superinit];

if(self){

unsignedintcount =0;

Ivar*ivars =class_copyIvarList([selfclass], &count);

for(NSIntegeri=0; i

Ivarivar = ivars[i];

constchar*key =ivar_getName(ivar);

NSString*iName = [NSStringstringWithUTF8String:key];

idvalue = [aDecoderdecodeObjectForKey:iName];

[selfsetValue:valueforKey:iName];

}

free(ivars);

}

returnself;

}



Person*person = [[Personalloc]init];

person.name=@"xiaowei";

person.age=@(22);

person.occupation=@"IT程序猿";

person.nationality=@"中国";

NSString*path =NSHomeDirectory();

path = [pathstringByAppendingPathComponent:@"xiaowei"];

NSLog(@"paht = %@",path);

//归档

[NSKeyedArchiverarchiveRootObject:persontoFile:path];

//解归档

Person*laoxiao = [NSKeyedUnarchiverunarchiveObjectWithFile:path];

NSLog(@"欢迎%@岁的%@回到%@从事%@",laoxiao.age,laoxiao.name,laoxiao.occupation,laoxiao.nationality);

相关文章

  • OC中的归档解档

    oc中的归档就是把对象写到文件中. 首先模型必须遵守NSCoding协议,并且实现其中的方法 (归档):- (vo...

  • ios中Swift的归档与解档

    ios中Swift的归档与解档 归档 解档 init()方法 设置属性

  • 归档与解档

    归档:将对象按照一定的格式保存到文件中;解档:从文件中还原对象的过程 官方类的归档与解档方式一: 官方类的归档与解...

  • 归档解档

    归档 解档

  • iOS Runtime应用之自动归档

    归档 解档 end

  • 归档/解档

    一、对系统类进行归档/解档 第一种:对集合类对象进行归档/解档 归档: 解档 方法(1) 方法(2) 第二种:非集...

  • ios-Runtime(运行时)

    利用runtime来实现归档解档 方法交换 俗称 OC的方法欺骗 KVO的实现原理 用runtime来实现KVO...

  • MJExtension归档失败

    MJExtension归档解档奔溃 ,YYMode 归档解档正常的对比由于作者懒得截图,只说明是在[NNObjce...

  • 归档、解档

    1.创建类 ZFPerson,遵循协议NSCoding @interface ZFPerson : NSObjec...

  • 归档/解档

    1.沙盒路径 注意: 0.提供一个在真机情况下查找到沙盒的办法Xcode -> window ->devices找...

网友评论

      本文标题:OC中的归档解档

      本文链接:https://www.haomeiwen.com/subject/njexlttx.html