我对Objective-C很新,但在C#中有相当多的经验。我正在尝试检查Objective-C中的一些依赖注入框架。在研究一些框架的同时,我发现了一些与Objective-C类中的构造函数/初始化方法完全不同的东西。目标c初始化程序的歧义
如果我想通过像下面一个构造函数来注入对象,
-(id)initWithService:(id<ServiceProtocol>)service;
当然,这不会是默认的构造函数,直到这是从别的地方称为控制不会在这里进入。
只有-(id)init
是默认的构造函数,并且在注入此对象时控制权将进入此处。
所以我想知道如果它是一个很好的做法,从-(id)init
initWithService
?
或者对于每个类只有两个初始化程序仅在模拟过程中使用具有构造函数的初始化程序,并在框架的自动初始化过程中忽略它?
我真的不按照你的情况完全是,但我会说出我的观点是,如果你为了满足一些嘲弄的工具,你正在做一些不同的事情,你做错了。 – Avi
说实话,我不想使用任何工具。这是一个普通的Objective-C问题。如果你不能自定义init,你会怎么做,但你只能初始化。 – golldy
听起来像你想做'initWithService:'[你指定的初始化程序](http://stackoverflow.com/a/26186421/2976878),甚至可能[make'init'不可用](https://craftbeercraftcode.com/2014/12/28/better-brewing-with-ns_unavailable /),如果您没有默认值。 – Hamish