Можно ли зарегистрироваться против протокола в 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 к другому, сборка может быть введена.