加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 03:47:32 所属栏目:百科 来源:网络整理
导读:最近我意识到我需要为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”的东西.这是所有其他初始化程序重定向到的初始化方法(通常).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读