Open
Description
mj_shouldAutoInheritConfigurations
原有方案
mj_setup
block
设置会自动继承
mj_
非 block
方法设置不会自动继承
逻辑
这里以 mj_replacedKeyFromPropertyName
为例:
/// 父类:
@interface MJUser : NSObject <MJEConfiguration>
...
@end
@implementation MJUser
+ (NSDictionary *)mj_replacedKeyFromPropertyName {
return @{
@"speed": @"runSpeed"
};
}
@end
/// 子类:
@interface MJFrenchUser : MJUser
...
@end
@implementation MJFrenchUser
+ (NSDictionary *)mj_replacedKeyFromPropertyName {
return @{
@"nickname": @"surnom"
};
}
@end
原有逻辑
最终 MJUser 的替换列表为
@{
@"speed": @"runSpeed"
};
而 MJFrenchUser 的替换列表为
@{
@"nickname": @"surnom"
};
改进方案
提供选择继承与否的方法 mj_shouldAutoInheritConfigurations
, 默认为继承, 如果设置为否. 则不保留继承, 与原方案一致
否则保留默认继承的话 MJFrenchUser 的替换列表应为
@{
@"speed": @"runSpeed",
@"nickname": @"surnom"
};