自己写一个Json解析的模型

本文介绍了一个Objective-C基类BaseModal的实现方式,该类通过字典动态设置对象属性,适用于MVC架构中模型层对象的快速创建。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值