gpt4 book ai didi

objective-c - Objective-C : init and awakeFromNib

转载 作者:搜寻专家 更新时间:2023-10-30 20:19:07 25 4
gpt4 key购买 nike

我最近研究了一些基于 Cocoa 的开源项目。我看到很多程序的初始化代码都在awakeFromNib中,很少使用designated initializer。我习惯这样做:

  • 在覆盖的指定初始化器中:做所有非 Nib 的事情
  • 在 awakeFromNib 中:做所有与 Nib 相关的事情

这种做法错了吗?

最佳答案

是的,没错,所有与 nib 相关的东西都应该在 awakeFromNib 方法中完成。在它被调用的那一刻,你已经从 nib 初始化并加载了 View ,所以你已经可以配置和使用它了。

关于初始化器,请检查这个问题:iOS: UIView subclass init or initWithFrame:?

指定构造器是所有其他构造器必须调用的构造器。 UIView 和子类有点不寻常,因为它们实际上有两个这样的初始化器:-initWithFrame: 和 -initWithCoder:,具体取决于 View 的创建方式。你应该覆盖 -initWithFrame: 如果你在代码中实例化 View ,和 -initWithCoder: 如果你从 nib 加载它。或者,您可以将代码放在第三种方法中并覆盖这两个初始化程序,以便它们调用您的第三种方法。事实上,这通常是推荐的策略。

关于objective-c - Objective-C : init and awakeFromNib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18074601/

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