繁体   English   中英

调用[super loadView]有什么副作用

[英]What are the side effects of calling [super loadView]

loadView的文档中,Apple声明:

您对此方法的自定义实现不应调用super。

因此,我尝试在我的loadView方法中调用[super loadView] 似乎没有什么坏事发生,也没有警告。 我正在使用以编程方式在loadView创建的视图,而不是从NIB创建的视图。

当我调用[super loadView]时,实际上会发生什么(如果有)不好的事情?

调用[super loadView]将导致UIViewController执行loadView运行。 除其他外,如果已提供nibName ,则这是从NIB加载视图的方法。 因此,如果您要调用super last,它可能会覆盖您在自己的子类中所做的所有视图设置。 如果您先调用super,那么这将不是问题...除非您在-awakeFromNib有任何代码。

基本上,您不应该调用super因为如果您以编程方式加载视图,那么超类中完成的所有工作都不是您想要保留的工作。 充其量,您要扔掉很多工作。 最糟糕的是, UIViewController可能会在其中设置一些状态,从而对视图的起源做出假设。

您不需要它,所以不要这样做。

如果您允许我进行此比较,就好比“不要穿红色过马路”。

有一个交通信号灯制定了一条规则, 禁止过马路,因为无论出于何种原因,这都可能很危险。 您可能会以红色过马路而没有任何反应是完全合理的。

该API建立的是说明你应该叫超级规则。 与上面的示例一样,结果不确定,取决于其他因素。 没有任何反应是完全合理的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM