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

前端之家收集整理的这篇文章主要介绍了objective-c – 可以在init方法中调用init方法吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
最近我意识到我需要为init方法添加一个参数,以帮助我找到一个类.助手类处理警报视图,因此它已经在init中有一些参数,它们被查看,调整,然后发送到警报视图.

由于我正在各种场合使用这种方法,所以我不想冒险(通过丢失一个地方,并将一个“无法识别的选择器”放在客户手中),所以我决定添加一个init方法.

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

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

现在我简单地将第一个实现复制到foo中:一个,但最理想的是将第一个调用称为第二个,即

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

但我不知道这是否可以接受.代码似乎工作正常.

解决方法

是的,这是完全可以接受的,实际上很常见.

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

猜你在找的C&C++相关文章