字典转模型的字典转模型的方法和注意事项
字典的缺点
字典在取出值得时候,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类就是把字典转换后额模型