问题标签 [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.

0 投票
1 回答
188 浏览

swift - 将 SwInject 与中央观察者模式结合使用

我正在使用 SWInject 来维护我的应用程序中的依赖关系,并使用协调器模式来管理逻辑和依赖关系。

SWInject 可以与应用程序不同部分的多个观察者的集中式推送通知框架结合使用吗?

通常,我使用 Singleton 类来执行此操作,但这样做似乎违背了使用依赖注入模式的目的。

0 投票
1 回答
1950 浏览

ios - 为什么 Swinject 模型类注册时没有“.inObjectScope(.Container)”产生单例?

这个问题适用于对Swinject for Swift有很多经验的人。

我将展示有问题的代码,我的问题在底部。

代码很多,抱歉。

这是MySwinjectStoryboard.swift注册:

这是Stopwatch.swift,它只是在触发 onComplete 处理程序之前暂停一段时间:

ImageService.swift目前通过init函数简单地接受信号和秒表属性:

SignalsService.swift当前是一个空模型类:

虽然StartUpViewController.swift是一个基本UIViewController的,目前只接受其注入的属性:

finallygetPrivateKey()只是一个全局静态,返回唯一的 Ints:

现在据我了解,我注册Stopwatch.swiftMySwinjectStoryboard.swift方式意味着每次注入一个实例时,它将是一个新的离散实例。但是,两者ImageService.swiftStartUpViewController.swift被注入了相同的实例:

ImageService的关键应该是:

请问有人知道为什么会这样吗?谢谢你。

0 投票
1 回答
1148 浏览

swift - Swinject - 对成员的模棱两可的引用

我在我的应用程序中使用SwinjectSwift 3。当我尝试

我收到一条错误消息

这里有什么问题?

0 投票
1 回答
706 浏览

swift - 没有参数的 Swinject 服务类无法在 Swift 3.0 的 .container 范围内注册:为什么?

我创建了一个超级简单的协议:

和服务:

以及以下Swinject注册工作:

但以下没有:

给出的错误是:

有趣的是,以下工作(即:可以.container范围内注册带有参数的服务):

我读过这个类似的问题,但没有帮助:Swinject - Ambiguous reference to member

谢谢大家。

0 投票
2 回答
1141 浏览

ios - Swift 3.0 更新后,Swinject 中不同 ViewController 中的依赖注入不一致:为什么?

我正在注册一些Swinject带有小号(.container)的单例服务:

将它们注入到一些视图控制器中:

然后这些视图控制器以两种不同的方式显示,SomeViewController如下所示:

像这样AnotherViewController

SomeViewController得到它的服务注入,但不幸AnotherViewController的是没有。

这在升级到 Swift 3.0 之前曾经可以工作Swinject,但现在不行。请问这是为什么,需要改变什么?

谢谢你。

更新

不幸的是,我既不熟悉Swinject's 的底层代码库,也没有时间熟悉自己,但是通过挖掘表面下发生的事情,我发现了以下内容,希望这对任何可能比我更了解它的人有用:

成功的 VC DI:

失败的 VC DI:

补充说明:

失败的 VC 是 TabBarController 中的 UIViewController,两者都已在标准 XCode 故事板中布局。

0 投票
1 回答
232 浏览

swift3 - 用于 Swift 3.0.1 的 Swinject

目前Swinject/Swinject支持 swift 3.0。
什么时候支持 swift 3.0.1?
有人有什么想法吗?

0 投票
0 回答
336 浏览

ios - swinject - IOS - Swit - 显示位于 xib 文件中的视图控制器 = 崩溃

我将 swinject 与 swift 3 一起使用。我尝试在我当前的视图控制器上呈现,另一个视图控制器位于 .xib 文件中。

如果我在没有 swinject 的项目中这样做,它就可以工作。在我的项目中,使用 swinject 它会崩溃:libc++abi.dylib: 以 NSException 类型的未捕获异常终止

这是我用来定义视图控制器的代码:

这是我尝试在当前 viewController 上呈现 testViewController 的方式(例如,在按钮上单击 IBAction):

我尝试了不同的解决方案但没有成功。我无法删除 swinject (这个选择不是我的),我相信这是一个好主意,即使我并不容易使用它。我需要使用 .xib 文件,因为我有很多视图控制器,可以在不同的步骤中呈现。

谢谢你的帮助。奥利维尔

0 投票
0 回答
541 浏览

ios - 没有故事板的 Swift/Swinject

我正在使用没有情节提要的 Swinject 开始一个新的 Swift 项目。将 ViewController 注入其他 ViewController 以执行 Segue 的模式是什么?

  • 如果将子 ViewController 注入到父 ViewController 中,当您转到父 ViewController 并返回父 ViewController 时,子 ViewController 是否始终是同一个实例?我想每次都创建一个新的。
  • 如果您将一个子 ViewController 注入到父级中,那会不会导致该子 ViewController 的子 ViewControllers 也被注入,这意味着您将在加载根 ViewController 时将整个应用程序加载到内存中?

还是我错过了什么?

0 投票
1 回答
601 浏览

ios - 使用 Swinject 将 ViewModel 条件注入 ViewController

Swinject用来注入依赖项,到目前为止它工作得很好。但是现在我有一个场景,其中我有ViewController一个依赖于它的ViewModel. ViewModel符合ViewModeling协议并且可以是两种类型之一(两者都符合相同的协议,但具有截然不同的行为)。

我试图弄清楚如何注入正确的ViewModel(必须在运行时做出的决定)?

我注意到我可以使用Container来注册每个ViewModelbyname然后使用name来区分ViewModel应该注入哪些,这起初似乎是一个很好的解决方案 - 直到我发现我无法ViewController用名称实例化我错过了吗?)

我还考虑过在我的DependencyInjector类上公开一个属性,该属性将用于手动注入权限ViewModel- 尽管我觉得这种方法完全错过了拥有自动依赖注入解决方案的要点,并且还迫使我弄脏依赖注入器带有一些业务逻辑代码。

任何帮助或想法将不胜感激。

0 投票
2 回答
1720 浏览

ios - Swinject注册UIViewController最佳实践

此时在我的项目中,我使用 Swinject(DI 容器)。

如果我有以下层次结构,我想知道如何注册 ViewController:

他们将如何注册和使用?在项目的这一点上,我有两个选项我使用第一个选项,但有一种感觉我们应该使用第二个:)

如果您解释为什么使用一种或另一种方法,我会很高兴。

感谢您的回复