我创建了一个超级简单的协议:
protocol IndependentProtocol {}
和服务:
class IndependentService: IndependentProtocol {}
以及以下Swinject
注册工作:
defaultContainer.register( IndependentProtocol.self )
{
_ in IndependentService()
}
但以下没有:
defaultContainer.register( IndependentProtocol.self )
{
_ in IndependentService()
}.inObjectScope( .Container )
给出的错误是:
Ambiguous reference to member 'register(_:name:factory:)'
有趣的是,以下工作(即:可以在.container
范围内注册带有参数的服务):
defaultContainer.register( AnotherProtocol.self )
{
r in AnotherService(
signals: r.resolve( AnotherService.self )!
)
}.inObjectScope( .container )
我读过这个类似的问题,但没有帮助:Swinject - Ambiguous reference to member
谢谢大家。