gpt4 book ai didi

ios - 不同的初始化方法被调用

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:01:51 27 4
gpt4 key购买 nike

我对此有点了解。我正在通过以下方式初始化 UITableViewController 子类 CTSettingsVC:

CTSettingsVC *settingsVC = [[CTSettingsVC alloc] init];

但是,正在调用 initWithStyle 初始化程序。这是我的 m 文件:

@interface CTSettingsVC ()

@end

@implementation CTSettingsVC

- (id)initWithStyle:(UITableViewStyle)style
{
self = [super initWithStyle:style];
if (self) {
NSLog(@"Why is this called?")
self.title = @"Settings";
}
return self;
}

@end

我不确定这是预期的行为还是我遗漏了什么。

最佳答案

发生这种情况是因为 initWithStyle:UITableViewController 的指定初始化程序。 UITableViewControllerinit 方法看起来像这样:

- (instancetype)init
{
//NOTE: self is being used instead of super
return [self initWithStyle:UITableViewStylePlain];
}

并非所有 UIKit 类都遵循这种约定,即在存在指定初始化程序时使用默认值覆盖 init。如果我计划使用 init 作为默认初始化程序以确保我的子类在未来的 UIKit 版本中不会被破坏,我经常自己做。

关于ios - 不同的初始化方法被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25290448/

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