【ios开发】教你如何建一个小的model,来接受后台传过来的字典或者数组

大多来说我们喜欢用一些,jsonkit和jsonmodel的第三方的库来解析,有没有简单的办法实现一个model呢,答案当然是有的。KVC模式


1、实现简单的model

//
//  PeopleModel.h
//  WUmeng
//
//  Created by Mac on 16/4/13.
//  Copyright © 2016年 wmeng. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface PeopleModel : NSObject
@property(nonatomic,copy) NSString *name;
@property(nonatomic,copy) NSString *age;

@end

//
//  PeopleModel.m
//  WUmeng
//
//  Created by Mac on 16/4/13.
//  Copyright © 2016年 wmeng. All rights reserved.
//

#import "PeopleModel.h"

@implementation PeopleModel
//必需实现这个方法,防止后台返回的字段多一个后者少一个会崩溃的问题
-(void)setValue:(id)value forUndefinedKey:(NSString *)key
{
    
}
@end

这样我们就简单实现了一个model对象,如何使用呢?KVC

 //后台传过来的字典
    NSDictionary *peopleDic = @{@"name":@"小明",@"age":@"18"};
    //赋值
    PeopleModel *model = [PeopleModel new];
    [model setValuesForKeysWithDictionary:peopleDic];

这样我们就很方便的使用了。


2、如果后台传过来的id和model的字段不一致,并且由数组的话。

//
//  ListModel.h
//  WUmeng
//
//  Created by Mac on 16/4/13.
//  Copyright © 2016年 wmeng. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface ListModel : NSObject
@property(nonatomic,copy) NSString *name;
@property(nonatomic,copy) NSString *id1;
@property(nonatomic,strong) NSArray *listAry;


@end

//
//  ListModel.m
//  WUmeng
//
//  Created by Mac on 16/4/13.
//  Copyright © 2016年 wmeng. All rights reserved.
//

#import "ListModel.h"

@implementation ListModel
-(instancetype)init{
    
    self = [super init];
    if (self) {
        self.listAry = [NSMutableArray array];
    }
    return self;
}
//这个方法一定要实现不然,后台返回的数据多或者少的时候就会崩溃
-(void)setValue:(id)value forUndefinedKey:(NSString *)key{

    //如果和后台返回的字段冲突可以使用这个进行转换
    if ([key isEqualToString:@"id"]) {
        self.id1 = value;
    }
    
}
@end

实现方法:

  //后台传过来的字典
    NSDictionary *listDic = @{@"name":@"小明",@"id":@"18",@"listAry":@[@"1",@"2"]};
    //赋值
    ListModel *listModel = [ListModel new];
    [model setValuesForKeysWithDictionary:peopleDic];
    [listModel setListAry:listDic[@"listAry"]];

是不是so easy!!








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WMSmile

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值