台风自动注入程序集
Typhoon auto-inject assembly by protocol
我在正确获取带有自动注入宏的程序集时遇到问题。例如:
@protocol IFormatterProvider <NSObject>
- (id)statusTextFormatter;
@end
@interface MyAssembly : TyphoonAssembly <IFormatterProvider>
@end
@implementation MyAssembly
- (id <IFormatterProvider>)formatterProvider
{
return [TyphoonDefinition with:self]; // First guess
}
- (id)statusTextFormatter
{
// impl
}
@end
然后尝试在业务逻辑文件中使用它:
@interface MyStuff ()
@property (nonatomic, strong) InjectedProtocol(IFormatterProvider)formatterProvider;
@end
但是出现 "No components defined which satisify type" 错误(顺便说一句,有一个拼写错误),因为程序集已注册为 TyphoonInjectionDefinition
class NSObject
有没有可能做我正在做的事情?
您可以使用 this approach 注入程序集本身,充当工厂或提供者。这是显式接线。
我认为自动装配不适用于汇编协议,但是如果您对此感兴趣,可以提出功能请求。
我在正确获取带有自动注入宏的程序集时遇到问题。例如:
@protocol IFormatterProvider <NSObject>
- (id)statusTextFormatter;
@end
@interface MyAssembly : TyphoonAssembly <IFormatterProvider>
@end
@implementation MyAssembly
- (id <IFormatterProvider>)formatterProvider
{
return [TyphoonDefinition with:self]; // First guess
}
- (id)statusTextFormatter
{
// impl
}
@end
然后尝试在业务逻辑文件中使用它:
@interface MyStuff ()
@property (nonatomic, strong) InjectedProtocol(IFormatterProvider)formatterProvider;
@end
但是出现 "No components defined which satisify type" 错误(顺便说一句,有一个拼写错误),因为程序集已注册为 TyphoonInjectionDefinition
class NSObject
有没有可能做我正在做的事情?
您可以使用 this approach 注入程序集本身,充当工厂或提供者。这是显式接线。
我认为自动装配不适用于汇编协议,但是如果您对此感兴趣,可以提出功能请求。