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”的东西.这是所有其他初始化程序重定向到的初始化方法(通常). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |