台风自动注入程序集

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 注入程序集本身,充当工厂或提供者。这是显式接线。

我认为自动装配不适用于汇编协议,但是如果您对此感兴趣,可以提出功能请求。