4

我在我的应用程序中使用SwinjectSwift 3。当我尝试

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

我收到一条错误消息

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

这里有什么问题?

4

1 回答 1

8

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

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

检查以下内容:

  1. NetworkModeling并且Network在您的注册范围内可见(它们是public,或internal在同一模块中。请记住,引入了 swift3fileprivate和许多其他说明符,因此请确保您的标识符对注册代码可见

  2. 确保Network符合NetworkModeling. 由于无法看到继承,swift 编译器引发了有关 Swinject 工厂的模棱两可类型的错误

希望这可以帮助

于 2016-10-04T11:03:07.430 回答