Тайфун вводит ссылку и инициализирует ее
Есть ли в Typhoon возможность вернуть экземпляр в файл сборки?
Я хотел бы добавить ссылку на AFHTTPRequestOperationManager
а затем настройте ответ и запрос сериализатора.
Я полагаю, я могу сделать что-то вроде этого:
- (AFHTTPRequestOperationManager*) httpRequestManager{
return [TyphoonDefinition withClass:[AFHTTPRequestOperationManager class] configuration:^(TyphoonDefinition * definition){
[definition useInitializer:@selector(initWithBaseURL:) parameters:^(TyphoonMethod * initializer){
NSURL * baseURL = [NSURL URLWithString:kPBAuthenticatorBaseURL];
[initializer injectParameterWith:baseURL];
}];
[definition performAfterInjections:@selector(setResponseSerializer:) parameters:^(TyphoonMethod * initializer){}];
[definition performAfterInjections:@selector(setRequestSerializer:) parameters:^(TyphoonMethod * initializer){}];
}];
}
Нет ли простой возможности вернуть экземпляр, подобный этому:
- (AFHTTPRequestOperationManager*) httpRequestManager{
AFHTTPRequestOperationManager * manager = [AFHTTPRequestOperationManager manager];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
manager.responseSerializer = [AFJSONResponseSerializer serializer];
//Do some stuff to register it in the graph object --> HELP?
}
Это неправильный подход?
1 ответ
В настоящее время можно встроить простой объект в инициализатор, свойство или метод.
В настоящее время невозможно объявить метод, который возвращает простой объект, и который участвует в сборке. Причины:
- Typhoon обрабатывает сборку при запуске, и все методы должны возвращать TyphoonDefinition. Тайфун выделяет ключ на основе имени метода и регистрирует определение на заводе.
- После активации TyphoonComponentFactory возвращает построенные экземпляры на основе определений. Ваши интерфейсы сборки могут находиться перед фабрикой TyphoonComponent. Обратите внимание, что фактическая реализация сборки (содержимое файла.m) к этому времени была отброшена, и мы просто повторно используем интерфейсы как прокси для TyphoonComponentFactory
- Мы хотели поощрять простоту сборок, возвращая только определения.
Было бы просто ослабить правило, требующее, чтобы все методы сборки возвращали TyphoonDefinition. Это позволило бы внедрить объект, возвращаемый таким методом, в качестве зависимости в других определениях, учитывая, что он не будет участвовать в пуле области действия Typhoon.
Автоматическая регистрация такого экземпляра в контейнере также возможна, хотя и более сложна. Было бы необходимо договориться о том, какой неявный объем имеет такой объект.