我在使用自动注入宏正确获取程序集时遇到问题。例如:
@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
但是得到“没有定义哪个组件满足类型”错误(顺便说一下有错误),因为程序集TyphoonInjectionDefinition
已注册为NSObject
甚至可以做我正在做的事情吗?
答案 0 :(得分:1)
您可以使用this approach注入程序集本身,以充当工厂或提供程序。这是一个明确的布线。
我不相信自动布线适用于装配协议,但如果感兴趣,您可以提出功能请求。