网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

ObjectiveC对象序列化通用的NSCoder成员方法

 

创新互联联系热线:13518219792,为您提供成都网站建设网页设计及定制高端网站建设服务,创新互联网页制作领域10多年,包括成都VR全景等多个领域拥有丰富的营销推广经验,选择创新互联,为企业锦上添花。

/* NSCoder functions taken from:

 *http://davedelong.com/blog/2009/04/13/aspect-oriented-programming-objective-c

 */


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

if ([super respondsToSelector:@selector(initWithCoder:)] && ![self isKindOfClass:[super class]]) {

self = [super performSelector:@selector(initWithCoder:) withObject:decoder];

} else {

self = [super init];

}

if (self ==nil) {returnnil; }

    

NSAutoreleasePool *pool = [[NSAutoreleasePoolalloc]init];

unsigned int numIvars = 0;

Ivar *ivars = class_copyIvarList([self class], &numIvars);

for(int i = 0; i < numIvars; i++) {

Ivar thisIvar = ivars[i];

NSString *key = [NSStringstringWithUTF8String:ivar_getName(thisIvar)];

id value = [decoder decodeObjectForKey:key];

if (value == nil) { value = [NSNumber numberWithFloat:0.0]; }

[self setValue:value forKey:key];

}

if (numIvars > 0) { free(ivars); }

[pool drain];

returnself;

}

 

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

if ([super respondsToSelector:@selector(encodeWithCoder:)] && ![self isKindOfClass:[super class]]) {

[super performSelector:@selector(encodeWithCoder:) withObject:encoder];

}

NSAutoreleasePool *pool = [[NSAutoreleasePoolalloc]init];

unsigned int numIvars = 0;

Ivar *ivars = class_copyIvarList([self class], &numIvars);

for (int i = 0; i < numIvars; i++) {

Ivar thisIvar = ivars[i];

NSString *key = [NSStringstringWithUTF8String:ivar_getName(thisIvar)];

id value = [self valueForKey:key];

[encoder encodeObject:value forKey:key];

}

if (numIvars > 0) { free(ivars); }

[pool drain];

}

 

标题名称:ObjectiveC对象序列化通用的NSCoder成员方法
转载来源:http://bjjierui.cn/article/pjgjhs.html

其他资讯