iOS YYModel使用方法

文档地址:https://github.com/ibireme/YYModel



NSDictionary *testDic = @{@"groupId":@"01",
                            @"result":@[
                                        @{@"name":@"Lucy",  @"sex":@"male"},
                                        @{@"name":@"Lily",  @"sex":@"feMale"},
                                        @{@"name":@"Limei", @"sex":@"male"}
                                        ]
                              };

此处我设置 GroupUserModel 和 UserModel

@interface GroupUserModel : NSObject<YYModel>

@property (nonatomic, copy) NSString *groupId;
@property (nonatomic, strong) NSArray  *result;

@end

#import "GroupUserModel.h"
#import "UserModel.h"

@implementation GroupUserModel
 // 包含
+ (NSDictionary *)modelContainerPropertyGenericClass {
    return @{
             @"result" : [UserModel class],
             @"groupId" : @"groupId"
             };
}

// 白名单
+ (NSArray *)modelPropertyWhitelist {
    return @[@"result",
             @"groupId"];
}
@end
@interface UserModel : NSObject<YYModel>

@property (nonatomic, copy) NSString *name;
@property (nonatomic, copy) NSString *sex;

@end

#import "UserModel.h"

@implementation UserModel


// custom
+ (NSDictionary *)modelCustomPropertyMapper {
    return @{@"name" : @"name",
             @"sex" : @"sex",
             };
}

// 白名单
+ (NSArray *)modelPropertyWhitelist {
    return @[@"name",
             @"sex"];
}

@end
解决
 self.groupUserModel = [GroupUserModel yy_modelWithDictionary:testDic];
 self.dataArray = [NSMutableArray arrayWithArray:self.groupUserModel.result];
 for (UserModel *model in self.dataArray) {
        NSLog(@"name === %@",model.name);
 }

问题二: 有时我们Model中 .m 文件中写下面几个方法,老是没有提示,需要人工复制。。。
+ (nullable NSDictionary<NSString *, id> *)modelContainerPropertyGenericClass;
+ (nullable NSDictionary<NSString *, id> *)modelCustomPropertyMapper;
+ (nullable NSArray<NSString *> *)modelPropertyWhitelist;
+ (nullable NSArray<NSString *> *)modelPropertyBlacklist;

其实只要让 model 遵从<YYModel>协议就 OK 啦

问题三:直接用数组转 Model
@interface NSDictionary (YYModel)

+ (nullable NSDictionary *)yy_modelDictionaryWithClass:(Class)cls json:(id)json;

注意这个方法,直接套就 OK 啦

总的来说,github 中的说明文档足够可以满足我们的需求,细心阅读,我出问题也是没有详细了解的原因
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值