2016-09-07 2 views
1

У меня возникла проблема с правильным приобретением сборки с макросами автоматической инъекции. Например:Узел автоматической инжекции Typhoon по протоколу

@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 

Но не получают «Ни один из компонентов определяются которые satisify типа» ошибка (кстати есть опечатка), потому что сборка получила зарегистрирован как TyphoonInjectionDefinition с классом NSObject

Можно ли даже делать то, что я делаю?

ответ

1

Вы можете вставлять сборку самостоятельно, выступать в качестве завода или поставщика, используя this approach. Это явная проводка.

Я не считаю, что автоматическая проводка работает для протоколов сборки, однако вы можете поднять запрос функции, если это интересно.

+0

Я вижу, хотел убедиться, что вы не можете избежать явной инъекции. Добавлено [выпуск] (https://github.com/appsquickly/Typhoon/issues/529) – Emil

Смежные вопросы