Swinject - 对成员的模糊引用

时间:2016-10-02 04:20:30

标签: swift dependency-injection swinject

我在Swift 3应用中使用Swinject。我试过的时候

let container = Container()
container.register(NetworkModeling.self) { _ in Network() }

我收到错误说

Ambiguous reference to member 'register(_:name:factory:)'

这里有什么问题?

1 个答案:

答案 0 :(得分:8)

我遇到了同样的问题,我认为在这种情况下编译器可能会更冗长。

无论如何,我的问题在我身边,而不在Swinject

检查以下内容:

  1. NetworkModelingNetwork在您的注册范围内可见(它们在同一模块中为publicinternal。请记住,swift3引入{ {1}}以及许多其他说明符,因此请确保您的标识符对于注册代码是可见的

  2. 确保fileprivate符合Network。由于无法看到继承,swift编译器引发了关于Swinject工厂的ambigous类型的错误

  3. 希望,这有帮助