自己写一个Json解析的模型



#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这个方法来实例化对象即可。



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值