MJExtension icon indicating copy to clipboard operation
MJExtension copied to clipboard

增加模型配置方法的继承保留或不保留选择方案

Open wolfcon opened this issue 4 years ago • 0 comments

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"
};

wolfcon avatar Dec 29 '21 07:12 wolfcon