Objective c 在self中,在init方法中调用init方法可以吗?
最近我意识到我需要为一个助手类的init方法添加一个参数。helper类处理警报视图,因此它在init中已经有一组参数,这些参数被查看、调整,然后发送到警报视图 因为我在不同的地方使用这个方法,所以我不想冒崩溃的风险(错过其中一个地方,让客户手中有一个“无法识别的选择器”),所以我决定添加第二个init方法 即 及 现在我只是简单地将第一个实现复制粘贴到foo:one中,但理想情况下最好是将第一个调用作为第二个调用,即Objective c 在self中,在init方法中调用init方法可以吗?,objective-c,initialization,Objective C,Initialization,最近我意识到我需要为一个助手类的init方法添加一个参数。helper类处理警报视图,因此它在init中已经有一组参数,这些参数被查看、调整,然后发送到警报视图 因为我在不同的地方使用这个方法,所以我不想冒崩溃的风险(错过其中一个地方,让客户手中有一个“无法识别的选择器”),所以我决定添加第二个init方法 即 及 现在我只是简单地将第一个实现复制粘贴到foo:one中,但理想情况下最好是将第一个调用作为第二个调用,即 - (id)initWithA:a B:b C:c D:d { re
- (id)initWithA:a B:b C:c D:d
{
return [self initWithA:a B:b C:c foo:nil D:d];
}
但我不确定这是否可以接受。代码似乎工作正常。是的,这是完全可以接受的,实际上相当普遍
这就是为什么我们称之为“a”的原因。这是所有其他初始化者(通常)重定向到的初始化方法。哇,在我问问题之前,肯定需要搜索更多。谢谢!我得等10分钟才能接受。将接受soonish。@Kalle理论上所有答案都在文档中。不过,还是(通常)值得问这个问题,这样其他人将来可以更容易地找到信息。:)
- (id)initWithA:B:C:foo:D:
- (id)initWithA:a B:b C:c D:d
{
return [self initWithA:a B:b C:c foo:nil D:d];
}