Можно ли зарегистрироваться против протокола в Typhoon для использования с TyphoonComponentFactory.componentForType в Swift

TyphoonComponentFactoryProtocol.componentForType(classOrProtocol: AnyObject!) Не может принять протокол

Насколько я могу судить, MyProtocol.self возвращает протокол, а протокол, похоже, не реализует протокол AnyObject (только Any).

Есть ли способ использовать Typhoon для определения местоположения сервиса, основанный на быстром протоколе (кроме простого вызова функции сборки), или в настоящее время это просто ограничение swift и тайфуна?

1 ответ

Решение

К сожалению, похоже, что этот метод не работает для Swift, даже для @objc протоколы. Это хорошо работает для Objective-C. Я увеличил отчет об ошибках, чтобы, по крайней мере, сообщить, что этот метод недоступен в Swift.

Хотя это возможно, в Typhoon обычно нет необходимости разрешать компоненты с помощью TyphoonComponentFactory интерфейс, как они могут быть решены из сборки, например:

let assembly = SwiftMiddleAgesAssembly().activate()
let knight = assembly.basicKnight() as! Knight 

И если вы хотите, чтобы вы могли перейти от одного построенного объекта Typhoon к другому, сборка может быть введена.

Другие вопросы по тегам