[英]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.