首页 > 代码库 > IOS 字典转模型

IOS 字典转模型

模型类:

技术分享
//模型类:用来存放数据的类


#import <Foundation/Foundation.h>
/**
 copy:NSString
 strong:一般对角
 weak:UI控件
 assign:基本数据类型
 
 */

@interface MjAPP : NSObject

/**名称*/
@property (nonatomic,copy)NSString *name;

/**图标*/
@property(nonatomic,copy)NSString *icon;

@end
View Code

字典对象转模型对象:

技术分享
/**获取plist文件的数组数据*/
-(NSArray *)apps{
    
    if(_apps==nil)
    {
    //初始化
    //1.获得.plist的全路径
        NSString *path=[[NSBundle mainBundle]pathForResource:@"app.plist" ofType:nil];
                        
    //2.加载数组
        NSArray *dictArray=[NSArray arrayWithContentsOfFile:path];
      
      //3.将dictArray里面的所有字典转成模型对角。放到新的数组中
        NSMutableArray *appArray=[NSMutableArray array];
        for (NSDictionary *dict in dictArray) {
        //3.1创建模型对象
            MjApp *app=[[MjApp alloc]init];
            
          //3.2将字典的所有属性赋值给模型
            app.name=dict[@"name"];
            app.icon=dict[@"icon"];
            
            //使用宏定义字段
//            app.name=dict[appName];
//            app.icon=dict[appIcon];
            
            //3.3添加模型对象到数组中
            [appArray addObject:app];
        }
    }
    
    return _apps;
}
View Code

调用模型对象

技术分享
        //使用MjApp模型
        MjApp *appInfo=self.apps[index];

         //3.4.1添加图片
        UIImageView *iconView=[[UIImageView alloc]init];
        CGFloat iconW=35;
        CGFloat iconH=35;
        CGFloat iconX=(appW-iconW)*0.5;
        CGFloat iconY=0;
        iconView.frame=CGRectMake(iconX, iconY, iconW, iconH);
        //iconView.backgroundColor=[UIColor grayColor];
       // iconView.image=[UIImage imageNamed:appInfo[@"icon"]];
        
        //使用模型对象 icon
        iconView.image=[UIImage imageNamed:appInfo.icon];
        
        [appView addSubview:iconView];
        
        //3.4.2 添加名字
        UILabel *nameLabel=[[UILabel alloc]init];
        CGFloat namgeX=0;
        CGFloat nameY=iconY+iconH;
        CGFloat nameW=appW;
        CGFloat nameH=20;
        nameLabel.frame=CGRectMake(namgeX, nameY, nameW, nameH);
        nameLabel.backgroundColor=[UIColor greenColor];
       // nameLabel.text=appInfo[@"name"];
        //使用模型对角 name
        nameLabel.text=appInfo.name;
        
        
        nameLabel.font=[UIFont systemFontOfSize:8];//设置字体大小
        nameLabel.textAlignment=NSTextAlignmentCenter;//字体居中
        [appView addSubview:nameLabel];
View Code

 

IOS 字典转模型