gpt4 book ai didi

iphone - viewDidLoad 和 awakeFromNib 时序

转载 作者:行者123 更新时间:2023-12-03 18:29:56 28 4
gpt4 key购买 nike

据我了解,awakeFromNib 始终会在 viewDidLoad 之前调用。

所以我有一个 UITableViewController 的子类,它是从 xib 文件中取消存档的。

我在里面定义了这两个方法:

- (void)awakeFromNib {
[super awakeFromNib];
NSLog(@"awake from nib");
}

- (void)viewDidLoad {
[super viewDidLoad];
NSLog(@"view did load");
}

发生的情况是“view did load”在控制台中的“awake from nib”之前出现。我尝试在 [super awakeFromNib] 处使用断点,并反复按 F7(步入),令我惊讶的是,它在进入 awakeFromNib 内的第二行之前进入 -(void)viewDidLoad。

有人知道这是怎么回事吗?我在常规 UIViewController 的子类中做了完全相同的事情,并且日志语句是相反的,正如我最初预期的那样......

最佳答案

要了解这一事实,我建议您查看 loadNibNamed:owner:options: NSBundle 的方法。

当您从 nib 初始化 View Controller 时,首先它会加载其中包含的 View ,然后根据 nib 设置文件所有者属性。当将文件所有者的 view 属性设置为已加载的 View 之一时,将调用 viewDidLoad 方法。当设置所有文件所有者导出和属性(包括 view 属性)时,会调用 awakeFromNib 。因此,viewDidLoad 的调用早于 awakeFromNib 是有道理的。

希望这会有所帮助

关于iphone - viewDidLoad 和 awakeFromNib 时序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6302629/

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