缺少Typhoon,我被告知在Objective-C中进行(或至少模拟)依赖注入的方式是使用惰性模式:
- (Foo)foo
{
if (!_foo) {
_foo = [Foo sharedInstance];
}
return _foo;
}
我总是厌恶这个,因为你最终得到了这个七行样板代码的多个实例,污染了每个视图控制器。您甚至无法将其隐藏在类别中,因为您无法定义类别的属性。
直到Swift获得注释和内省功能,我可以编写如下内容:
@injected foo: Foo!
...人们在Swift中使用哪些模式从多个Storyboard实例化的视图控制器获取对共享模型对象的引用?