在开发时经常会出现的一个状况就是APP打算写界面但后台接口还没做好,这时,像记录、列表这些页面需要展示模拟后台数据,此时,就需要自己做一个假的后台数据在关键时刻撑撑场面。本文就是介绍如何利用YYModel解析自己的假数据。

创建Model

首先需要创建model,这种列表数据一般是放在model的data里作为一个数组的形式,所以,先建一个总的model用来盛放data数组。
OrderListModel.h文件

1
2
3
4
5
6
7
8
#import "BaseModel.h"
#import "OrderModel.h"

@interface OrderListModel : BaseModel

@property (nonatomic, strong) NSMutableArray <OrderModel *>*data;

@end

OrderListModel.m文件

1
2
3
4
5
6
7
8
9
#import "OrderListModel.h"

@implementation OrderListModel

+ (nullable NSDictionary<NSString *, id> *)modelContainerPropertyGenericClass {
return @{@"data":[OrderModel class]};
}

@end

然后就是数组内单独的model数据,也是界面列表中需要展示的单条数据。
OrderModel.h文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#import <Foundation/Foundation.h>

@interface OrderModel : NSObject

@property (copy) NSString *orderId;
@property (copy) NSString *memberId;
@property (copy) NSString *status;
@property (copy) NSString *bankName;
@property (copy) NSString *cardNo;
@property (copy) NSString *cardType;
@property (copy) NSString *amount;
@property (copy) NSString *compAmount;
@property (copy) NSString *fee;
@property (copy) NSString *compFee;
@property (copy) NSString *billDate;

@end

OrderModel.m文件

1
2
3
4
5
#import "OrderModel.h"

@implementation OrderModel

@end

在需要模拟数据的界面,添加model类以及YYModel

1
2
3
#import "OrderModel.h"
#import <YYModel/YYModel.h>
#import "OrderListModel.h"

创建dict数据:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
NSDictionary *subDict1 = @{
@"memberId":@"12356728846232",
@"status":@"01",
@"customerName":@"cindy",
@"customerIdNo":@"123456777522244",
@"bankName":@"ABC",
@"bankCode":@"aa1",
@"cardNo":@"43420024420024",
@"cardType":@"ok",
@"cvv2":@"1000",
@"expiredDate":@"",
@"orderId":@"1234567890",
@"mobile":@"13333333333",
@"amount":@1999,
@"compAmount":@100,
@"fee":@1234,
@"compFee":@1000,
@"billDate":@"2018-3",
@"isDel":@"N",
};
NSMutableArray<OrderModel *> *array = [NSMutableArray arrayWithObjects: subDict1, subDict1, subDict1, subDict2, subDict3, subDict3, subDict3, subDict3, nil];

NSDictionary *dict;
dict = @{
@"code":@"000000",
@"timestamp":@"1516340698125",
@"msg":@"成功",
@"data":array};

这里有两种方法将dict转为OrderListModel类型:

1
2
OrderListModel *listModel = [[OrderListModel alloc] init];
[listModel yy_modelSetWithDictionary:dict];

或者使用:

1
OrderListModel *listModel1 = [OrderListModel yy_modelWithJSON:dict];

此时,模拟接口返回的数据就完成了,在需要展示的地方调用listModel或者listModel1data字段,得到数组,然后再展示就可以,这种方式可以避免我们在开发时由于没有接口导致自己的界面开发受堵塞的情况。