I'm trying to integrate Typhoon Framework into my app and stuck with one problem.
I have 3 classes that inherited from TyphoonAssembly. One of them depends on another one.
Here is a code of the assembly that has dependency
@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
The problem occurs when calling self.managersAssembly.folderManager.defaultFolder. Here is self.managersAssembly is an instance of TyphoonCollaboratingAssemblyProxy, hence, self.managersAssembly.highlightManager is instance of TyphoonReferenceDefinition instead of actual assembly and object that should be returned by folderManager respectively.
Assemblies defined in Info.plist as following

I tried to change ordering of these items, no luck.
Without the self.managersAssembly.folderManager.defaultFolder line it compiles successfully and if, for example, in app delegate class (which is also injected) I call [(SMManagersAssembly *)self.assembly highlightManager].defaultHighlight it works perfectly well.
What I'm doing wrong and what is the propper way of doing it?
Typhoon 2.2.1