Я хотел бы добавить официальный компонент DI в свое приложение, и Typhoon выглядит так, как будто он может выполнить эту работу. Прежде чем я погрузился, я хотел посмотреть, есть ли способ обработать инъекции зависимостей, которые должны быть решены асинхронно.Асинхронное разрешение зависимостей с использованием Typhoon
Чтобы привести пример: мой базовый стек данных настроен так, как это рекомендовано here. Поскольку инициализация магазина может занять некоторое время и заблокировать основной поток, это делается в фоновом потоке, и основной поток уведомляется, когда объект готов к использованию.
У меня есть объект, который обертывает эту логику, и мой делегат приложения в настоящее время ждет ответного вызова, чтобы получить уведомление о готовности базы данных. Затем объект вводится в другие объекты на моем графике через инъекцию свойств.
Я хотел бы заменить этот подход внедрения свойств с помощью Typhoon Assembly, но я не вижу способа справиться с асинхронным характером инициализации объекта базы данных. Если это невозможно, могу ли я сохранить инициализацию объекта базы данных из Typhoon, но вручную предоставить результирующий объект для сборки для использования с проводным графиком после его готовности?
Поблагодарили бы за любые советы!
NB: Если вы используете Swift, то Typhoon, так как динамическая библиотека ObjC имеет следующие ограничения: https://github.com/appsquickly/Typhoon/wiki/Swift-Quick-Start#important. , аналогично использованию KVO или других особенностей какао. –
Привет, Джаспер, спасибо!Могу ли я сделать что-то вроде отдельной сборки для контроллера базы данных, поэтому я могу создать экземпляр и подождать, пока он будет готов, прежде чем переходить на вторую сборку, которая также знает об этом объекте контроллера и может вставлять его в другие объекты на графике ? Можно ли делиться определениями между сборками? Я использую Objective-C и раскадровки. Мой начальный контроллер представления по существу является spinner, когда все инициализируется, и я перехожу на первый правильный контроллер представления после завершения всех асинхронных задач начальной загрузки. – Craig
Вы можете модулировать сборки: https://github.com/appsquickly/Typhoon/wiki/Modularizing-Assemblies. , , имейте в виду, что это обеспечивает один основной TyphoonComponentFactory и, таким образом, дает некоторые приятные функции. , , или у вас может быть два отдельных экземпляра Typhoon, и кормить объект, созданный один к другому - Typhoon не будет знать или заботиться о том, чтобы экземпляр появился из другого экземпляра Typhoon. –