ios - Swinject:在工作区中使用多个模块(项目)时解析失败
问题描述
我正在尝试使用 Swinject 为多模块工作区设置 DI。我有一个ParentProject
嵌入二进制框架的地方ChildProject
(因此ParentProject
包括来自 的所有公共代码ChildProject
)。
我的方法是为每个模块创建一个程序集,然后在 ParentProject 中将它们组合在一起。我得到的错误对我来说真的很奇怪,取一个NSPersistentContainer
:
Swinject: Resolution failed. Expected registration:
{ Service: NSPersistentContainer, Factory: Resolver -> NSPersistentContainer }
Available registrations:
{ Service: NSPersistentContainer, Factory: Resolver -> NSPersistentContainer, ObjectScope: container }
ParentProject 的装配示例:
public class ParentProjectAssembly: Assembly {
...
public func assemble(container: Container) {
...
container.register(NSPersistentContainer.self) { _ in
return self.persistentContainer
}.inObjectScope(.container)
...
}
}
如果我将这个注册码移到或者我在他们两个中都有这个注册并不重要ChildProjectAssembly
,错误总是一样的。我的汇编器只是Assembler([ParentProjectAssembly(), ChildProjectAssembly()]
在 ParentProject 的 AppDelegate 中(现在)。似乎一切正常,assemble(container:)
方法对所有程序集都有相同的容器,一些注入确实有效,但其他人有这个错误提示我应该在不指定 objectScope 的情况下注册服务?那是不可能的。
帮助
解决方案
推荐阅读
- nim-lang - 有什么方法可以从同一目录中的其他文件导入本地 proc?
- selenium - 在 selenium webdrievr 中按 ctrl + tab
- javascript - 我的不和谐计数机器人不是逐台服务器而是每台服务器组合
- java - 从另一个活动 android 访问和更新 textview
- javascript - 未处理的拒绝(TypeError):无法读取属性
- azure-active-directory - Active Directory 组和角色
- ruby-on-rails - 在 Rails 中测试 PG 约束
- c++ - MSB6006 错误“CL.exe exited with code -1073741819”由代码错误引起
- python - 未从套接字连接获取完整数据
- aws-lambda - 无服务器 nuxt 应用程序中的路由不起作用