我在Swift 3
应用中使用Swinject。我试过的时候
let container = Container()
container.register(NetworkModeling.self) { _ in Network() }
我收到错误说
Ambiguous reference to member 'register(_:name:factory:)'
这里有什么问题?
答案 0 :(得分:8)
我遇到了同样的问题,我认为在这种情况下编译器可能会更冗长。
无论如何,我的问题在我身边,而不在Swinject
检查以下内容:
NetworkModeling
和Network
在您的注册范围内可见(它们在同一模块中为public
或internal
。请记住,swift3引入{ {1}}以及许多其他说明符,因此请确保您的标识符对于注册代码是可见的
确保fileprivate
符合Network
。由于无法看到继承,swift编译器引发了关于Swinject工厂的ambigous类型的错误
希望,这有帮助