本文共 2451 字,大约阅读时间需要 8 分钟。
在前两篇中,我们用到了字典,现在想将字典转为模型
dict[@"name"] = @"天天跑酷"; NSString*name = dict[@"name"];
app.name = @"天天跑酷”;NSString*name = app.name;
模型应该提供一个可以传入字典参数的构造方法- (instancetype)initWithDict:(NSDictionary *)dict;+ (instancetype)xxxWithDict:(NSDictionary *)dict;4.下面就前面的那个例子说明一下怎么将字典转为模型,并使用它
@interface app : NSObject//名称@property(nonatomic,copy) NSString *name;//图像@property(nonatomic,copy) NSString *icon;//通过字典来初始化模型对象 dict 为字典对象,return 已经初始化完毕的模型对象-(instancetype)initWithDict:(NSDictionary *)dict;+(instancetype)appWithDict:(NSDictionary *)dict;@endapp.m中
@implementation app-(instancetype)initWithDict:(NSDictionary *)dict{ if (self = [super init]) { self.name = dict[@"name"]; self.icon = dict[@"icon"]; } return self;}+(instancetype)appWithDict:(NSDictionary *)dict{ return [[self alloc]initWithDict:dict];}@end4.3
-(NSArray *)apps
//plist-(NSArray *)apps{ if (_apps == nil) { //初始化 //1.获得plist的全路径 NSBundle *bundle = [NSBundle mainBundle]; NSString *plistPath = [bundle pathForResource:@"app.plist" ofType:nil]; //2.加载数组 NSArray *dictArray = [NSArray arrayWithContentsOfFile:plistPath]; //3.将dictArray里面的所有字典转成模型对象,放到新的数组中 NSMutableArray *appArray = [NSMutableArray array]; for (NSDictionary *dict in dictArray) { //创建模型对象 //app *app1 = [[app alloc]initWithDict:dict]; app *app1 = [app appWithDict:dict]; //添加模型对象到数组中 [appArray addObject:app1]; } //4.赋值 _apps = appArray; } return _apps;}4.4
这样就可以在程序中使用模型啦
将
for循环里面的
/** 将三个组件添加到小框框中*/ //0.index位置对应的应用信息 NSDictionary *appInfo = self.apps[index];改为
/** 将三个组件添加到小框框中*/ //0.index位置对应的应用信息 app *appInfo = self.apps[index];将
//设置图片 image.image = [UIImage imageNamed:appInfo[@"icon"]];
//设置图像名的文字 name.text = appInfo[@"name"];改为
//设置图片 image.image = [UIImage imageNamed:appInfo.icon];
//设置图像名的文字 name.text = appInfo.name;这样就行了