美文网首页
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