iOS开发之字典转模型

字典转模型实现方法如下:

#import "MJApp.h"@implementation MJApp- (instancetype)initWithDict:(NSDictionary *)dict{    if (self = [super init]) {        self.name = dict[@"name"];        self.icon = dict[@"icon"];        self.title = dict[@"title"];        self.answer = dict[@"answer"];    }    return self;}+ (instancetype)appWithDict:(NSDictionary *)dict{    return [[self alloc] initWithDict:dict];}@end

        或者用KVC方法来实现

#import "MJApp.h"@implementation MJApp- (instancetype)initWithDict:(NSDictionary *)dict{    if (self = [super init]) {        [self setValuesForKeysWithDictionary:dict];    }    return self;}+ (instancetype)appWithDict:(NSDictionary *)dict{    return [[self alloc] initWithDict:dict];}@end

        但是KVC的使用是有条件的 ; 由于KVC会将字典所有的键值对(key-value)赋值给模型对应的属性.只有当字典的键值对个数跟模型的属性个数相等,并且属性名必须和字典的键值对一样时才可以使用KVC.

/** *  字典转模型,模型再次存入数组中 重写数组的set方法 */
-(NSArray *)questions{    
if (_questions ==nil) {        //加载plist,将plist中存储的字典数据放在数组dictArray中     
   NSArray *dictArray = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"questions.plist" ofType:nil]];              
  NSMutableArray *questionArray = [NSMutableArray array];        //用自定义的JNQuestion模型question来接收 数组 dictArray 中的元素;       
 for (NSDictionary * dict in dictArray){            
JNQuestions *question = [JNQuestions questionWithDict:dict];            //JNQuestions *question =[[JNQuestions alloc]initWithDict:dict];           
 [questionArray addObject:question];}               
 // 赋值       
 _questions = questionArray;           
 }    return _questions;   
 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值