gpt4 book ai didi

objective-c - 在 Objective-C 中,指定初始化器总是被调用的规则并不总是被遵守?

转载 作者:可可西里 更新时间:2023-11-01 05:41:55 25 4
gpt4 key购买 nike

我们能否相信在 Objective-C 中,类的指定初始化器总是被调用的规则?或者我们可以说,它应该几乎总是正确的,除了几个异常(exception)?例如,对于 UIViewdocs说:

initWithFrame:

If you create a view object programmatically, this method is thedesignated initializer for the UIView class. Subclasses can overridethis method to perform any custom initialization but must call superat the beginning of their implementation.

If you use Interface Builderto design your interface, this method is not called when your viewobjects are subsequently loaded from the nib file. Objects in a nibfile are reconstituted and then initialized using their initWithCoder:method

或者我们可以说,如果以编程方式进行,规则应该始终适用于设计良好的类,但 Interface Builder 有点不同,因为它有点“复活”或从非编程方式构建对象。如果是,那么在我们进行 iOS 编程时,它们是不是一般的其他异常?

最佳答案

事实是,使用 Interface Builder 设计的类未归档且未初始化。

归档涉及类未初始化但未归档,因此 initWithCoder: 方法负责在使用 Interface Builder 配置的归档属性加载控件时设置控件。

您应该将您的初始化操作放在 awakeFromNib: 方法中,该方法在每种情况下都会在加载对象后被调用,这样您就可以确保您的初始化语句将被调用。

关于objective-c - 在 Objective-C 中,指定初始化器总是被调用的规则并不总是被遵守?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12541268/

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