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?
}
这种方法有误吗?
答案 0 :(得分:1)
目前可以将一个简单对象内联到初始化器,属性或方法。
目前无法声明返回简单对象的方法,并让它参与程序集。原因是:
放宽要求所有装配方法返回TyphoonDefinition的规则会很简单。这将允许将这种方法返回的对象注入其他定义中的依赖关系,同时要记住它不会参与Typhoon的范围池。
虽然涉及更多,但也可以在容器中自动注册这样的实例。有必要就这样一个对象所具有的隐含范围达成一致。