YYModel icon indicating copy to clipboard operation
YYModel copied to clipboard

假如同一个model类modelCustomPropertyMapper里的key改变了,如何重新对应

Open Ryan-Wong-iOS opened this issue 8 years ago • 1 comments

我在一个案例中读取一个繁体的名字

  • (nullable NSDictionary<NSString *, id> *)modelCustomPropertyMapper{

    return @{@"name":@"name_tc"}; } APP中更换语言后,需要读取简体的名字,所以我就动态把name_tc改成name_sc

  • (nullable NSDictionary<NSString *, id> *)modelCustomPropertyMapper{

    return @{@"name":@"name_sc"}; } 可是我发现YYModel会缓存同一个类上一次的mapper,导致我无法按照新的mapper去读取值

Ryan-Wong-iOS avatar Nov 29 '17 10:11 Ryan-Wong-iOS

首先,你这样的设计有问题,不同场景应该对应 model 上不同的 property。如果你执意如此,你可以试试下面这种方式:

+ (nullable NSDictionary<NSString *, id> *)modelCustomPropertyMapper
{
	return @{@"name":@[@"name_sc", @"name_tc]};
}

dict to model 时,有 name_sc 或者 name_tc 会自动映射到 name 属性上; modeo to dict 时,name 属性一定会映射到第一个 key,也就是 name_sc 上;

heistings avatar Jan 26 '18 08:01 heistings