私は非常に単純なプロトコルを作成しました:
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
よろしくお願いします。