2016-10-02 3 views
4

Я использую Swinject в моем Swift 3 приложении. Когда я попыталсяSwinject - Неоднозначная ссылка на член

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

Я получаю сообщение об ошибке говорящее

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

Что здесь не так?

+0

Не компилятору также дадут вам список возможных перегрузок? – Alexander

+0

Документация swinject демонстрирует ей то же самое –

+0

Как вы установили Swinject, например. Карфаген или CocoaPods? Какой код в документации демонстрирует проблему? –

ответ

8

Я столкнулся с той же проблемой, и я думаю, что компилятор может быть немного более подробным в этом случае.

Во всяком случае, моя проблема была на моей стороне, а не в Swinject

Проверьте следующее:

  1. NetworkModeling и Network открыты в рамках вашей регистрации (они public или internal в тот же модуль. Помните, что swift3 представил fileprivate и многие другие спецификаторы, поэтому убедитесь, что ваши идентификаторы видны для кода регистрации

  2. Убедитесь, что Network соответствует NetworkModeling. Будучи не в состоянии видеть наследование, быстрый компилятор вызывает ошибку о Неоднозначных типах для Swinject завода

Надежда, это помогает

+2

# 2 выше было чрезвычайно полезно –

Смежные вопросы