问题
I am using Swinject in my Swift 3 app. When I tried
let container = Container()
container.register(NetworkModeling.self) { _ in Network() }
I get an error saying
Ambiguous reference to member 'register(_:name:factory:)'
What is wrong here?
回答1:
I faced the same issue and i think compiler could be a bit more verbose in this case.
Anyway, my problem was on my side, not in Swinject
Check the following:
NetworkModelingandNetworkare visible in scope of your registration (they arepublic, orinternalin the same module. remember, that swift3 introducedfileprivateand many other specifiers, so make sure your identifiers are visible to registeting codeMake sure that
Networkconforms toNetworkModeling. Being unable to see inheritance, swift compiler raises error about ambigous types for Swinject factory
Hope, this helps
来源:https://stackoverflow.com/questions/39813830/swinject-ambiguous-reference-to-member