每次使用 Swinject 解析对象时如何返回相同的实例?

Posted

技术标签:

【中文标题】每次使用 Swinject 解析对象时如何返回相同的实例?【英文标题】:How to return the same instance every time when resolving object with Swinject? 【发布时间】:2018-10-08 13:42:07 【问题描述】:

目前我这样做:

    container.register(TabBarViewModelable.self)  (_, tabBarItems: [TabBarItemType]) in
        return TabBarViewModel(tabBarItems: tabBarItems)
    .inObjectScope(.container)

它不起作用。有没有办法在我第一次用标签栏项目数组初始化它后每次都返回相同的实例?

【问题讨论】:

你可以将 TabBarViewModel 设为单例并返回 【参考方案1】:

您可以使用 singleton 模式。

基本上,您可以将 TabBarViewModel 包装在另一个单例类中并返回该类的对象。

看看

https://medium.com/@nimjea/singleton-class-in-swift-17eef2d01d88

【讨论】:

非常非常糟糕的主意;)

以上是关于每次使用 Swinject 解析对象时如何返回相同的实例?的主要内容,如果未能解决你的问题,请参考以下文章