gpt4 book ai didi

cocoa - UIViewController 子类子类 - 如何避免 super 的实现?

转载 作者:行者123 更新时间:2023-12-03 17:13:59 25 4
gpt4 key购买 nike

这是我的情况:子类B继承自子类A继承自UIViewController。在子类 B 中,我避免调用 viewWillAppear: 的 super (子类 A)实现,但我认为它不正确,即使它工作正常。

仍然调用 UIViewController 的实现的正确方法是什么?

最佳答案

深层类层次结构通常会变得困惑,尤其是对于 UIViewController。尽可能避免使用它们。

一种方法是提供一种机制来绕过父类(super class)提供的功能。例如:

@interface MagicalViewController : UIViewController
-(BOOL)shouldDoMagicOnViewWillAppear;
@end


@implementation MagicalViewController

-(void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];

if ([self shouldDoMagicOnViewWillAppear]) {
//do magic
}
}


-(BOOL)shouldDoMagicOnViewWillAppear {
return YES;
}


@end



@interface NotSoMagicalViewController : MagicalViewController
@end

@implementation NotSoMagicalViewController

-(BOOL)shouldDoMagicOnViewWillAppear {
return NO;
}

@end

关于cocoa - UIViewController 子类子类 - 如何避免 super 的实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12476568/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com