ios - 调用 [super viewWillAppear] [super viewDidLoad] 等的正确顺序是什么?

标签 ios objective-c

当提供viewWillAppearviewDidLoadviewDidAppearloadView等实现时

应该在执行自定义操作之前还是之后调用父类(super class)对应的方法?

如果以错误的顺序执行,可能会产生什么后果?

应该是:

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

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

等等

最佳答案

对于绝大多数您想做的事情,它根本不会产生任何影响。首先调用“super”很方便,因为之后很容易检查并确保您正在调用 super。 Apple 的文档只是指出“您必须在实现的某个时刻调用 super”。

有一种情况可能更重要。如果您不是直接从 UIViewController 继承,而是从另一个自定义类继承,那么您应该在做出决定时研究该类的特定行为。通常,首先调用 super 是一种很好的设计模式,可以轻松地在调试时始终预测行为。

关于ios - 调用 [super viewWillAppear] [super viewDidLoad] 等的正确顺序是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9234810/

相关文章:

ios - 错误 : Visual Studio Cordova Command failed with exit code 69

iOS 11 CPU 节流和空闲计时器

ios - 从不兼容类型分配给可为空的 ID

ios - Flutter 意外退出,Error reading dependency

iphone - iOS 具有相同应用程序的不同方向模式

'Storage and iCloud Usage' 的 iOS 9 应用启动 URL

ios - Yelp API OAuth - oauth_signature

objective-c - AFNetworking 中的 registerHTTPOperationClass 实际上做了什么?

objective-c - 奇怪的错误 : CGImageProviderCreate: invalid image provider size: 55 x 36

objective-c - 如何非模态打开 NSOpenPanel (因为我要打开现有工作表)