使用 Typhoon 的异步依赖解析

Asynchronous dependency resolution using Typhoon

我想在我的应用程序中添加一个正式的 DI 组件,Typhoon 看起来可以完成这项工作。在我深入研究之前,我想看看是否有任何方法可以处理必须异步解决的依赖项注入。

举个例子:我的核心数据堆栈是按照推荐的方式设置的here。由于初始化存储可能需要一些时间并阻塞主线程,因此它在后台线程中完成,并且当对象准备好可以使用时通知主线程。

我有一个包装此逻辑的对象,我的应用程序委托当前正在等待回调以通知数据库已准备就绪。然后通过 属性 注入将对象注入我图中的其他对象。

我想用 Typhoon 程序集替换此 属性 注入方法,但我看不到处理数据库对象初始化的异步性质的方法。如果那不可能,我是否可以将我的数据库对象初始化保留在 Typhoon 之外,但手动将生成的对象提供给 Assembly,以便在它准备好后与有线图一起使用?

如有任何提示,我们将不胜感激!

但是,我们对此没有任何特殊支持。 . .

范围:

台风提供 various scopes。如果使用异步初始化存储的对象属于以下范围:

  • TyphoonScopeObjectGraph
  • TyphoonScopePrototype
  • TyphoonScopeLazySingleton
  • TyphoonScopeWeakSingleton

。 . .也就是说,除了 TyphoonScopeSingleton 之外的任何范围,只要您最初呈现的视图控制器不依赖于核心数据存储,就不需要特殊设置。

要从一个对象图转到另一个对象图,您可以使用 this process, or if you're using storyboards and Objective-C just auto-injection

手动提供对象注入:

您可以注册一个生成另一个对象的对象 like this 或者只提供一个自定义对象来参与组装。

。 .如果以上任何一项都不适合您的需要,并且您有其他通用的想法,我们很乐意为您实施。

Here's a sample / example for setting up Typhoon with Core Data,可以对其进行修改以支持您在问题中链接到的文章中的模式。