gpt4 book ai didi

objective-c - 在 init 方法中调用 self 中的 init 方法可以吗?

转载 作者:太空狗 更新时间:2023-10-30 03:28:21 25 4
gpt4 key购买 nike

最近我意识到我需要为我得到的帮助程序类的 init 方法添加一个参数。 helper 类处理警报 View ,因此它在 init 中已经有一堆参数,这些参数被查看、调整,然后发送到警报 View 。

由于我在不同的地方使用该方法,所以我不想冒崩溃的风险(错过其中一个地方并在客户手中得到一个“无法识别的选择器”)所以我决定添加第二个 init 方法。

- (id)initWithA:B:C:D:

- (id)initWithA:B:C:foo:D:

现在我只是将第一个的实现复制粘贴到 foo: one 中,但理想情况下最好是让第一个调用第二个,即

- (id)initWithA:a B:b C:c D:d
{
return [self initWithA:a B:b C:c foo:nil D:d];
}

但我不确定这是否可以接受。代码似乎运行良好。

最佳答案

是的,这是完全可以接受的,而且实际上很普遍。

这就是为什么我们有一个叫做“Designated Initializer”的东西。这是所有其他初始化器(通常)被重定向到的初始化器方法。

关于objective-c - 在 init 方法中调用 self 中的 init 方法可以吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3495213/

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