Я пытаюсь интегрировать Typhoon Framework в свое приложение и столкнулся с одной проблемой.
У меня есть 3 класса, унаследованные от TyphoonAssembly
. Один из них зависит от другого.
Вот код сборки, которая имеет зависимость
@interface SMObjectFactory : TyphoonAssembly
@property(nonatomic, strong, readonly) SMManagersAssembly *managersAssembly;
- (SMNote *)createEmptyNoteWithCurrentDate;
@end
// ===================================
@implementation SMObjectFactory {}
- (SMNote *)createEmptyNoteWithCurrentDate {
return [TyphoonDefinition withClass:[SMNote class] configuration:^(TyphoonDefinition *definition) {
[definition useInitializer:@selector(init)];
NSDate *dateAdded = [NSDate date];
[definition injectProperty:@selector(key) with:[NSString UUID1WithDate:dateAdded]];
[definition injectProperty:@selector(dateAdded) with:dateAdded];
[definition injectProperty:@selector(folderKey) with:self.managersAssembly.folderManager.defaultFolder];
}];
}
@end
Проблема возникает при вызове self.managersAssembly.folderManager.defaultFolder
. Здесь self.managersAssembly
является экземпляром TyphoonCollaboratingAssemblyProxy
, следовательно, self.managersAssembly.highlightManager
является экземпляром TyphoonReferenceDefinition вместо фактической сборки и объекта, которые должны быть возвращены folderManager соответственно.
Сборки, определенные в Info.plist следующим образом
Я пытался изменить порядок этих элементов, но безуспешно.
Без строки self.managersAssembly.folderManager.defaultFolder
он успешно компилируется, и если, например, в классе делегата приложения (который также внедряется) я вызываю [(SMManagersAssembly *)self.assembly highlightManager].defaultHighlight, он работает отлично.
Что я делаю неправильно и как правильно это сделать?
Тайфун 2.2.1