1、** dict- model
NSDictionary* dict=@{@"username":@"小邓"};
User* user= [User mj_objectWithKeyValues:dict];
2、** array<dict> - array<model>
NSArray<XMGTopic *> *moreTopics = [XMGTopic mj_objectArrayWithKeyValuesArray:responseObject[@"list"]];
3、 ** 如果是当实体中有Array的时候,必须说明: .h中:
@interface XMGTopic : NSObject
/** 最热评论 */
@property (nonatomic, strong) NSArray<XMGComment*> *top_cmt;
@end
.m中:
@implementation XMGTopic : NSObject
+(NSDictionary *)mj_objectClassInArray{
/*** 如果NSArray中需要执行模型,那么必须重写 mj_objectClassInArray 方法,告诉Mj-Extension Array对应模型,
有多个,可以写多个 **/
return @{@"top_cmt":[XMGComment class]};
}
@end
如果不说明,那么 实体类中的 模型不能转化 为 模型, 使用dict读取
@interface XMGTopic : NSObject
@property(nonatomic,copy) NSString* name;
@property(nonatomic,assign) NSInteger cai;
@property(nonatomic,strong) NSArray* top_cmt;
@end
// 读取实体类模型数据
// ios 不能一次性彻底转化, 拿到NSArray以后获取字典在继续转化
if(self.top_cmt.count){
// 返回字典
NSDictionary* dict= topics.top_cmt.firstObject;
}
4、 ** 如果是实体类中有实体类,那么不用说明
5、 模型属性名和字典key不对应:
@implementation User
+(NSDictionary *)replacedKeyFromPropertyName
{
// 格式: 模型属性 = 字典key
return @{
@"username1":@"username"
};
}
@end
6、如果有的时候避免模型污染
在 viewDidLoad{}中:
// 实体类属性名和字典不对应
[User mj_setupReplacedKeyFromPropertyName:^NSDictionary *{
return @{
@"username1":@"username"
};
}];
// 实体类中有Array
[User mj_setupObjectClassInArray:^NSDictionary *{
return @{
@"top_cmt":[XMGComment class]
};
}];