美文网首页
MJExtension的使用

MJExtension的使用

作者: 乡水情缘 | 来源:发表于2017-06-05 10:15 被阅读45次

使用MJExtension框架,是最常见的不过了,本文主要关注以下几点,这地方就不在造轮子了,发现一个讲的比较好的,http://www.jianshu.com/p/4782fbd029cc

1.Model中的关键字处理

  1. 简单的字典 --> 模型
  2. JSON字符串 --> 模型
  3. 复杂的字典 --> 模型 (模型里面包含了模型)

模型类User定义:

typedef enum {
    SexMale,
    SexFemale
} Sex;
@interface User : NSObject
@property (copy, nonatomic) NSString *name;/* 姓名 */
@property (copy, nonatomic) NSString *icon;/* 头像 */
@property (assign, nonatomic) unsigned int age;/* 年龄 */
@property (copy, nonatomic) NSString *height;/* 身高 */
@property (strong, nonatomic) NSNumber *money;/* 资产 */
@property (assign, nonatomic) Sex sex;/* 性别 */
@property (assign, nonatomic, getter=isGay) BOOL gay;/* 是否是同性恋 */
@end

使用实例:

NSDictionary *dict = @{
    @"name" : @"Jack",
    @"icon" : @"lufy.png",
    @"age" : @20,
    @"height" : @"1.55",
    @"money" : @100.9,
    @"sex" : @(SexFemale),/* 枚举需要使用NSNumber包装 */
    @"gay" : @"NO"
};
//字典转模型,使用的是mj_objectWithKeyValues:方法
User *user = [User mj_objectWithKeyValues:dict];

第二个问题:JSON字符串 --> 模型
使用实例:

// 定义一个JSON字符串
NSString *jsonString = @"{\"name\":\"Jack\", \"icon\":\"lufy.png\", \"age\":20}";
// JSON字符串转模型
User *user = [User mj_objectWithKeyValues:jsonString];

第三个问题:复杂的字典 --> 模型 (模型里面包含了模型)
模型类Status定义:

@interface Status : NSObject
@property (copy, nonatomic) NSString *text;
@property (strong, nonatomic) User *user;/* 其他模型类型 */
@property (strong, nonatomic) Status *retweetedStatus;/* 自我模型类型 */
@end

使用实例:
第一个问题: 关键字的处理
在Model里面使用mj_replacedKeyFromPropertyName方法替换掉关键字

+ (NSDictionary *)mj_replacedKeyFromPropertyName{
    return @{@"new":@"good"};
}

相关文章

网友评论

      本文标题:MJExtension的使用

      本文链接:https://www.haomeiwen.com/subject/ttkifxtx.html