您的位置:首页 > Web前端 > JavaScript

自己写一个Json解析的模型

2015-07-17 17:12 936 查看

#import "BaseModal.h"

@implementation BaseModal

-(instancetype)initWith:(NSDictionary *)dic{

    if (self = [super init]) {

        [self setValueFrom:dic];

    }

    return self;

}

//根据方法名  获取方法

-(SEL)getSetter:(NSString *)name{

    NSString *str = [name capitalizedString];

    NSString *setter = [NSString stringWithFormat:@"set%@:",str];

    return NSSelectorFromString(setter);

}

//传进来的字典对象   的key必须与对象属性一一对应

-(void)setValueFrom:(NSDictionary *)dic{

    NSArray *arr = dic.allKeys;

//循环遍历key 

    for (NSString *key in arr) {

        SEL setter = [self getSetter:key];

        if ([self respondsToSelector:setter]) {

            id value = dic[key];

//字典中的对象进行处理  如果不是string类型 转变成string类型

            if(![value isKindOfClass:[NSString class]]){

                value  = [value stringValue];

            }

            [self performSelector:setter withObject:value];

        }

    }

}

@end

在.h文件中 对初始化方法进行声明即可

@interface BaseModal : NSObject

-(instancetype)initWith:(NSDictionary *)dic;

@end

试用这个基类时   只要实体类 继承这个类,且用-(instancetype)initWith:(NSDictionary *)dic这个方法来实例化对象即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息