我是新手,DependencyInjection
因此Swinject
我有疑问。
假设我们有一个PersonList
带有Person
对象列表的 ViewModel。我们选择其中一个Person
并将其传递给PersonDetails
它,PersonDetails(person:Person)
基本上我们Person
从第一个 ViewModel 中选择一个并将其传递给Person
将显示详细信息的第二个 ViewModel。
正如我所了解的那样,Swinject
我们将在编译时注入依赖项,例如
let container = Container()
container.register(Person.self) { _ in Person(name: "Someone") }
container.register(PersonDetails.self) { r in PersonDetails(person: r.resolve(Person.self))}
我的问题是我们在编译时没有信息来知道Person
将选择哪种类型,PersonList
所以我们如何在编译时注入正确选择Person
的内容PersonDetails
。