我正在尝试将 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