字典转模型的字典转模型的方法和注意事项

字典的缺点

字典在取出值得时候,key容易输入错误,因为key是@"“的,xcode不会检查@”"中的内容。
例如我有这样一个字典,字典里的2个key,分别是imageName和title,但是如果我在使用字典的时候输入key @"imageName"多加了一个s变成@“imageNames”,xcode如何检测出错误,如果多次使用@“imageName”,就跟容易出错。
在这里插入图片描述

字典转模型的使用方法

现在建立一个类,用这个类来存放从字典中取出来的value值

Shop类

//Shop.h
@interface Shop : NSObject
@property (strong,nonatomic)NSString *imageName;
@property (strong,nonatomic)NSString *title;
@end

//Shop.m

@implementation Shop
+(instancetype)ShopWithImageName:(NSString*)imageName title:(NSString*)title
{
    return [[Shop alloc]initWithImageName:imageName title:title];
}
-(instancetype)initWithImageName:(NSString*)imageName title:(NSString*)title
{
    self = [super init];
    if (self) {
        _imageName=imageName;
        _title=title;
    }
    return self;
}

@end

我在要使用这个字典的时候,这样转换,先建立Shop对象,然后把字典里的value赋值给Shop类对象

            Shop *shopcart=[[Shop alloc]init];
            shopcart.imageName=dict[@"imageName"];
            shopcart.title=dict[@"title"];
            
            之后我们再使用字典里的值得时候就不用输入:dict[@"imageName"];和dict[@"title"];
            而是直接输入:
            shopcart.imageName;
            shopcart.title;
            而且有自动提示输入shopcart对象.技能选中成员变量_imageName和_title
            
### 我们可以给这个模型做几个类方法和成员方法,用来初始化类成员,让使用更加方便,同时增加代码逼格

         //1.普通的字典转模型直接给Shop对象的2个成员变量赋值
            Shop *shopcart=[[Shop alloc]init];
            shopcart.imageName=dict[@"imageName"];
            shopcart.title=dict[@"title"];
            
            
            //2.使用自定义的类成员方法初始化2个成员变量
            Shop *shopcart=[Shop ShopWithImageName:dict[@"imageName"] title:dict[@"title"]];
            
            
            //3.使用自定义的对象成员方法初始化2个成员变量
            Shop *shopcart=[[Shop alloc]initWithImageName:dict[@"imageName"]  title:dict[@"title"]];
            
        //使用模型的时候如下:
        iconView.image=[UIImage imageNamed:shop.imageName];//加载图片的时候,直接调用的是Shop类对象的成员,这个Shop类就是把字典转换后额模型
        titlelabel.text=shop.title;//加载标题的时候,直接调用的是Shop类对象的成员,这个Shop类就是把字典转换后额模型
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值