如何使用李明杰大牛的这个框架?
这里我只说明常用的几个方法:
- 模型里面套着模型(dic{dic}):
情形:
有个2个模型:一个Status模型,和一个User模型
Status模型: 有3个属性,一个ID 一个User,一个text
@property (nonatomic, copy) NSString *ID;
@property (nonatomic, copy) NSString *text;
@property (nonatomic, strong) User *user;
User模型:有3个属性, 一个name 一个profile_image_url,一个idstr
@property (nonatomic, copy) NSString *name;
@property (nonatomic, copy) NSString *idstr;
@property (nonatomic, copy) NSString *profile_image_url;
结构如下:
此时只需要用MJExtension 的方法:
Status *status =[Status mj_objectWithKeyValues:dic]
这样就可以全部转成模型;
模型套着数组,数组里面又套着模型:
Person模型: 有2个属性,一个name 一个Books
@property (nonatomic, copy) NSString *name;
@property (nonatomic, strong) NSArray *books;
Books模型:有2个属性, 一个price一个name
@property (nonatomic, copy) NSString *name;
@property (nonatomic, assign) NSString *price;
结构如下:
结构.png方法:现在Person类.m中告诉他你数组里面是什么模型:
// Tell MJExtension what type model will be contained in statuses and ads.
[StatusResult mj_setupObjectClassInArray:^NSDictionary *{
return @{
@"books" : @"Books",
// @"books" : [Books class],
};
}];
然后在使用下面的这个方法就可以实现都转成模型:
Person *person = [Person objectWithKeyValues:dict];
有时候遇到服务器返回的属性名和关键字重名,这时候我们往往自定义名字,比如上面的 id 改成 ID,此时可以利用这个框架的一个方法处理,这样才可以接收到服务器的数据:
[Student mj_setupReplacedKeyFromPropertyName:^NSDictionary *{ return @{ @"ID" : @"id" };}];
网友评论