最近我意识到我需要为我得到的帮助程序类的 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/