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