美文网首页
YYModel常见知识点

YYModel常见知识点

作者: 独孤流 | 来源:发表于2017-05-24 13:11 被阅读50次

    如果model有属性是NSArray数组类型,则设置以下方式自动转换好数组里的对象

    @class Shadow, Border, Attachment;
    
    @interface Attributes
    @property NSString *name;
    @property NSArray *shadows; //Array<Shadow>
    @property NSSet *borders; //Set<Border>
    @property NSMutableDictionary *attachments; //Dict<NSString,Attachment>
    @end
    
    @implementation Attributes
    // 返回容器类中的所需要存放的数据类型 (以 Class 或 Class Name 的形式)。
    + (NSDictionary *)modelContainerPropertyGenericClass {
        return @{@"shadows" : [Shadow class],
                 @"borders" : Border.class,
                 @"attachments" : @"Attachment" };
    }
    @end
    

    Model 属性名和 JSON 中的 Key 不相同

    // JSON:
    {
        "n":"Harry Pottery",
        "p": 256,
        "ext" : {
            "desc" : "A book written by J.K.Rowing."
        },
        "ID" : 100010
    }
    
    // Model:
    @interface Book : NSObject
    @property NSString *name;
    @property NSInteger page;
    @property NSString *desc;
    @property NSString *bookID;
    @end
    @implementation Book
    //返回一个 Dict,将 Model 属性名对映射到 JSON 的 Key。
    + (NSDictionary *)modelCustomPropertyMapper {
        return @{@"name" : @"n",
                 @"page" : @"p",
                 @"desc" : @"ext.desc",
                 @"bookID" : @[@"id",@"ID",@"book_id"]};
    }
    @end
    

    一个已经存在的创建好的对象,要给它赋值

    @interface People
    @property NSString *name;
    @proerty CGFloat price;
    @end
    NSDictionary *param = {@"name":@"黄金国",@"pages":@100};
    People *people = [People new];
    if([people yy_modelSetWithDictionary:param]){};
    

    相关文章

      网友评论

          本文标题:YYModel常见知识点

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