问题标签 [swinject]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
swift - 与程序集共享容器 - 如何将相同的对象传递给协调器和控制器
每次我们解析一个协议/类时,我们都会得到一个新对象。我的协调员需要一个视图模型,而我的控制器需要相同的视图模型。
}
协调员就像
}
问题是,当我试图在我的 lsViewController 中注入 viewModel 时,会创建一个不同的 lsViewModel 实例。因此,Rx 绑定不起作用,并且打印语句未执行。有没有办法将相同的视图模型传递给协调器和控制器?
swift - Swift 中的简单容器绑定?
免责声明:我仍在学习 Swift,如果我不了解 Swift 的某些概念/功能/限制,请原谅我。
使用 Swinject 框架,如果您想将协议绑定到类 - 似乎您必须在闭包中返回类实例,例如:
是否可以改为将两种类型传递给register()
方法并让框架为您实例化该类?当然,它需要递归地查看该类是否具有任何初始化程序依赖项(控制反转)。
这在 PHP 世界中是可能的,因为您有反射的概念,它允许您获取依赖项的类类型,允许您即时实例化它们。我想知道 Swift 是否有这种能力?
写这个会更好:
这也将允许您从容器中解析任何类并解决它的依赖关系(无需手动注册类):
注意:这仅对不将标量类型作为依赖项的类有意义(因为它们当然需要明确给出)。
swift - Swinject:生成任何对象的实例(对于未注册的对象、ViewModel 等...)
是否可以解决/创建未在 Swinject 容器中注册的对象的新实例?在 Unity 的 c#(来自 Microsoft)的依赖注入中就是这样。
我想解决对某些协议有依赖性的 viewModel 类。例如:我在容器中注册了 IFileManager:
我 viewModel 对 IFileManager 有依赖
现在我想使用 Swinject 解析器创建 AwesomeViewModel 的新实例,并且我希望将所有依赖项添加到 init 中,但它不起作用
并且 ViewModel 为零
ios - 崩溃:Container.swift 第 299 行 Container.resolve(条目:ServiceEntryProtocol,调用者:(B)-> 任何)-> A?
最近,我在尝试解析对象时开始崩溃。以下是崩溃日志。我可以在第 299 行 guard let currentObjectGraph = currentObjectGraph else { fatalError() }
的 Container.swift 中看到应用程序没有获取 currentObjectGraph 并且它失败了。可能的原因是什么?在我的项目中,我有一个全局级别的汇编程序,它添加了来自不同框架的所有程序集。但是当我试图解决一个对象时,它会导致崩溃。这是一个中间问题:-
ios - 如何将正确的 viewModel 注入单个 viewController
我正在使用Swinject
我的 DI 解决方案,并使用扩展对其进行SwinjectStoryboard
扩展。
我正在努力动态注入viewModel
特定的viewContoller
. 具体场景如下:
MyViewController
有一个名为 的属性var viewModel: ViewModeling
。
有 2 种不同的视图模型符合ViewModeling
协议,我们称之为:firstViewModel
和secondViewModel
. 我的故事板只包含一个控制器,它的MyViewController
.
问题
注入正确的viewModel作为MyViewController
动态的依赖(所以只有在运行时我才会知道是注入第一个还是第二个)
我能够在服务级别上做到这一点(2 个服务符合的一个协议,以及 2 个不同的视图模型,每个视图模型使用不同的服务可以使用特定名称解析所需的一个)
我正在努力在 viewController 级别上执行此操作,尝试将相同的视图控制器注入特定的 viewModel(两者都符合相同的协议)。
目前我的预感是SwinjectStoryboard
不允许我使用它的故事板 ID 实例化视图控制器(就像我通常会做的那样),此外还定义了几个将在运行时解析的不同名称。
我错过了什么吗?
swift - UIViewController 不会取消初始化(mvvm + 协调器)
因为这个问题,我很头疼。为什么我的 SplashscreenViewController 没有取消初始化?你们在下面发布的代码中看到任何潜在的保留周期吗?我试图检查 Malloc 堆栈,但找不到任何有用的信息。
拥有 SplaschreenViewController 实例的类是它的协调器。下面的代码:
还有一些来自 BaseCoordinator 的代码:
提前感谢您的回答!
ios - Swinject 容器注册失败
在尝试将一些协议绑定到各种类时,我遇到了进入nil
协议的奇怪行为。这是依赖注入器类:
这是AppDelegate
:
在下面的类中,我得到nil
了协议属性:
网络 var 始终nil
在使用storyboardInitCompleted
网络 var 的其他类中有效。
我究竟做错了什么?
swift - SwinjectStoryboard - 是否可以加载/注入其 ViewController 存在于另一个项目的不同框架中的故事板?
SwinjectStoryboard - 是否可以加载/注入其 ViewController 存在于另一个项目的不同框架中的故事板?
ios - Swinject - 如何从一个解析器两次解析同一个控制器?
而且...底部只有一个 TabBarItem。为什么?
如果我这样使用它:
那么一切都很好。;)在我的实现中,Swinject 有什么问题?
dependency-injection - 使用 Swinject+Assembly 将数据从模态传递到呈现 vc
我正在使用 RxSwift + Swinject + Assembly 开发一个项目,但它们对我来说很新。我有一个用于过滤器选择的模态控制器。它使用带有所有可用过滤器的 FilterViewModel。我想知道如何将选定的过滤器传递给呈现视图控制器?我现在可以将呈现视图控制器转换为预期类型并将过滤器设置为 vc 的属性,但我想以正确的方式使用 DI 和程序集。