- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我想在我的应用程序中添加一个正式的 DI 组件,Typhoon 看起来可以胜任这项工作。在我深入研究之前,我想看看是否有任何方法可以处理必须异步解决的依赖项注入(inject)。
举个例子:我的核心数据堆栈是按照推荐的方式设置的 here .由于初始化存储可能需要一些时间并阻塞主线程,因此它在后台线程中完成,并且当对象准备好可以使用时通知主线程。
我有一个包装此逻辑的对象,我的应用程序委托(delegate)当前正在等待回调以通知数据库已准备就绪。然后通过属性注入(inject)将该对象注入(inject)我图中的其他对象。
我想用 Typhoon Assemblies 替换这种属性注入(inject)方法,但我看不到一种方法来处理数据库对象初始化的异步性质。如果这不可能,我是否可以将我的数据库对象初始化保留在 Typhoon 之外,但手动将生成的对象提供给程序集,以便在它准备好后与有线图一起使用?
如有任何提示,我们将不胜感激!
最佳答案
但是,我们对此没有任何特殊支持。 . .
范围:
台风提供various scopes .如果使用异步初始化存储的对象属于以下范围:
TyphoonScopeObjectGraph
TyphoonScopePrototype
TyphoonScopeLazySingleton
TyphoonScopeWeakSingleton
. . .也就是说,除了 TyphoonScopeSingleton
之外的任何范围,只要您最初呈现的 View Controller 不依赖于核心数据存储,就不需要特殊设置。
要从一个对象图继续到另一个对象图,您可以使用 this process , 或者如果你使用 Storyboard和 Objective-C 只是 auto-injection .
手动提供一个对象进行注入(inject):
您可以注册一个生成另一个对象的对象 like this或者只是提供一个自定义对象来参与程序集。
. .如果以上任何一项都不适合您的需要,并且您有其他通用的想法,我们很乐意为您实现。
Here's a sample / example for setting up Typhoon with Core Data ,可以对其进行修改以支持您在问题中链接到的文章中的模式。
关于ios - 使用 Typhoon 的异步依赖解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32862103/
我有一个混合的 ObjC 和 Swift iOS 项目。 我有一个类用于在运行时测试一个普通闭包的注入(inject): @objc class TyphoonClosureTester: NSObj
我正在开发一个私有(private) pod,目前我在使用 Typhoon 将属性注入(inject) Bootstrap 类时遇到了一些困难。 我的类(class): public class My
我正在尝试使用示例项目设置 Typhoon 框架,当我运行模拟器时它工作正常,但当我尝试运行测试时它给我一个错误。错误如下: NSInvalidArgumentException', reason:
我在我的应用程序中使用 Typhoon 一段时间了。最近升级到 Typhoon v3.2.8 后,我在应用程序启动时收到一条新的信息级消息记录到控制台中: 2015-09-04 15:27:07.76
我正在尝试实现一个补丁程序,如文档和这篇 SO 帖子中所示:Typhoon: How to get an instance conforming to a protocol for productio
我尤其是 DI 和 Typhoon 的新手。我想知道是否可以使用初始化方法和属性以外的方法初始化对象。 我有一个名为 ObjectMapper 的类,一个 ObjectMapper 可以有 N 个 O
在我们的应用中,我们重用了一个基础 View Controller ,它为我们应用中的 View 提供了通用功能。它需要注入(inject)一个 View 和一个 View 模型。我在我们的程序集中创
我正在尝试开始使用 Typhoon Framework,但遇到了问题。 我的代码是: @interface CustomAssembly : TyphoonAssembly CustomAssembl
我正在尝试从程序集(或不同的程序集)中修补程序集。 https://github.com/appsquickly/Typhoon/wiki/Integration-Testing#patching-o
我将 Typhoon 程序集子类化,以便返回 stub 实现,用于单元测试目的。 我的程序集看起来像这样: class RealAssembly : TyphoonAssembly { publi
我想在我的应用程序中添加一个正式的 DI 组件,Typhoon 看起来可以胜任这项工作。在我深入研究之前,我想看看是否有任何方法可以处理必须异步解决的依赖项注入(inject)。 举个例子:我的核心数
我正在使用 Typhoon用于 iOS 的依赖注入(inject)。 我已经注册了一个类 ConfigProviderImpl,它被其他类所依赖。基本上,我想要一个方法,loadConfig 在另一个
我是 Typhoon 的新手。我正在阅读文档以将依赖项注入(inject) Storyboard的 View Controller 。我对框架如何在类上进行 DI 有基本的了解,但 Storyboar
我创建了一个项目来测试 Typhoon 框架,我创建了两个类 ApplicationAssembly 和 CoreAssembly,我在其中注入(inject)了一些属性和构造函数以及一个默认的 Co
我在用 Objective-C 编写的 iOS 应用程序中使用 Typhoon 3.6.0 进行依赖项注入(inject)。应用程序中有 3000 多个 TyphoonDefinition。当前应用程
在我的单元测试中,我使用 Typoon 和 TyphoonBlockComponentFactory 对象来实例化模拟和对象等。我所有的单元测试都按顺序一次运行,并且每个单元测试都建立了自己的工厂,只
我的 4 个 Typhoon 组件中实际上有大约 150 个组件。我在应用启动时使用这些程序集初始化了 TyphoonComponentFactory,它可能会很长,具体取决于组件的数量和 tagrg
我打算在新创建的项目中引入依赖注入(inject)框架,并找到了Typhoon这看起来非常好(除了在 Swift 中引用方法和属性时必须使用字符串)。它通常似乎很适合我的应用程序,但我为处理网络请求而
在 iOS 上运行 UI 测试时是否可以交换或修补程序集?目前我有一个项目,我在其中设置了 Typhoon 框架,并且我能够像这样修补程序集 var controller: HomeViewContr
我的类结构如下: class BaseNetworkClient: NSObject { var defaultParametersBuilder: DefaultParametersBuil
我是一名优秀的程序员,十分优秀!