iphone - [super viewWillAppear] 做什么,什么时候需要?

标签 iphone objective-c cocoa-touch

-(void)viewWillAppear:(BOOL)animated{
//something here
[super viewWillAppear];
}

[super viewWillAppear]; 总是需要的吗?如果不是,您何时以及为何使用它?

最佳答案

首先,正确的样板应该是:

-(void)viewWillAppear:(BOOL)animated{
   [super viewWillAppear:animated];
   //something here
}

换句话说,先调用 super ,然后再做你自己的事情。并且您必须将 animated 参数传递给 super

您通常希望在任何方法中首先调用父类(super class)的实现。在许多语言中,它是必需的。在 Objective-C 中不是,但如果不将它放在方法的顶部,则很容易遇到麻烦。 (也就是说,我有时会打破这种模式。)

调用 super 的 实现是必需的吗?对于这个特定的方法,如果您不调用它,您可能会得到意想不到的行为(例如,特别是如果您已经子类化了一个 UINavigationController)。所以答案是,不是技术意义上的,但您应该始终这样做。

但是,在许多其他方法中,可能有充分的理由不调用 super

关于iphone - [super viewWillAppear] 做什么,什么时候需要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3348204/

相关文章:

ios - 插入文本后 caretRectForPosition 返回错误的坐标

c# - 从代码创建手势识别器

ios - 如何根据其内容调整 UITextView 的大小?

iphone - Twitter 和 FB 集成到 iPhone 应用程序

iphone - NSArray 中索引处的对象

ios - 点击按钮时分层

objective-c - NSScrollView isFlipped 问题

iphone - 有没有其他方法可以使用动画 block 来执行此动画?

ios - Objective-C:方法的返回值和Completion block ,它们是如何执行的?

Objective-C:重写父类(super class) getter 并尝试访问 ivar 时出现编译器错误