我试图使用台风在我的ViewController中注入(inject)“worker”类型。我的“worker”需要一个委托(delegate),以便在工作完成后调用此方法。我需要将我的ViewController设置为注入(inject)的工作类的委托(delegate)。换句话说,循环依赖。更新问题来源://mytyphoonassemblyclassimportTyphoonclassAssembly:TyphoonAssembly{publicdynamicfuncviewController()->AnyObject{returnTyphoonDefinition.withC
我在用Objective-C编写的iOS应用程序中使用Typhoon3.6.0进行依赖项注入(inject)。应用程序中有3000多个TyphoonDefinition。当前应用程序启动时间超过4秒。XcodeTimeProfiler显示Typhoon在应用程序启动时调配项目中的每个Typhoon定义。这就是为什么需要这么长时间。如何优化Typhoon启动并缩短应用启动时间? 最佳答案 使用Typhoon4.0.0是因为它使用代理而不是swizzling来检测应用程序程序集-非常大的程序集的启动时间要快得多。如果您仍然看到启动时间比
我正在尝试编写XCTest并使用Typhoon注入(inject)模拟依赖。这是我的ViewController中的代码:-(instancetype)init{self=[superinit];MDMainAssembly*assembly=(MDMainAssembly*)[TyphoonComponentFactorydefaultFactory];self.alertManager=[assemblyalertManager];returnself;}以下是我尝试更改注入(inject)的方式:self.mockedAlertManager=mock([MDAlertManag
我正在尝试使用PList集成方法引导Typhoon,但我的ApplicationDelegate被创建了两次。第一次创建时,显然是由Typhoon创建的。那时,它使用特殊的初始化程序initWithAssembly:和Typhoon将程序集提供给它。第二次,重要的是,它是使用init创建的。它永远不会获得对程序集的引用。为了以防万一,我还通过属性方法注入(inject)了assembly。不行。代码如下:程序集-(UIApplication*)sharedApplication{return[TyphoonDefinitionwithClass:[UIApplicationclass]
用例:我有一个ApplicationAssembly。这个程序集有一个名为CoreAssembly的TyphoonAssembly类型的属性。我正在使用PLIST集成并注册了两个程序集。我正在将ApplicationAssembly注入(inject)Appdelegate。在ViewController之后,我想获得一个将由CoreAssembly生成的对象varappdelegate=UIApplication.sharedApplication().delegateas!AppDelegate;tagHandler=appdelegate.assembly.coreAssembl
我正在使用带有“Plist集成”的台风我在程序集中定义了AppDelegate如下:-(AppDelegate*)appDelegate{return[TyphoonDefinitionwithClass:[AppDelegateclass]configuration:^(TyphoonDefinition*definition){[definitioninjectProperty:@selector(window)];definition.scope=TyphoonScopeSingleton;}];}在window中,我有一个rootViewController和一个由AppDel
我有程序集:@interfaceMDUIAssembly:TyphoonAssembly@property(nonatomic,strong,readonly)MDServiceAssembly*services;@property(nonatomic,strong,readonly)MDModelAssembly*models;-(id)choiceController;@end@implementationMDUIAssembly-(void)resolveCollaboratingAssemblies{_services=[TyphoonCollaboratingAssembly
我有一个Storyboard,其中有一个View使用socket连接到他的Controller。在同一个Controller中,我想注入(inject)一个需要访问该View的对象。我不想将该View手动传递给对象,而是希望自动注入(inject)它,但我不知道如何以及是否可以使用当前代码结构实现它。classLoadingViewController:UIViewController{@IBOutletweakvarloadingView:UIActivityIndicatorView!private(set)varloadingViewModel:LoadingViewModel!
我正在plist中配置初始程序集,用于实例化Storyboard中的第一个Controller。稍后在应用程序中,我将使用以下方法更改RootViewController:TyphoonStoryboard*storyboard=[TyphoonStoryboardstoryboardWithName:storyboardTypefactory:factorybundle:nil];UIViewController*newRootView=[storyboardinstantiateViewControllerWithIdentifier:identifier];self.window
我正在尝试为使用运行时参数功能但没有成功的程序集中的选择器创建补丁程序。有没有人解决过类似的问题或者它还不能使用Swift?汇编中的方法定义如下所示:publicdynamicfuncrequestCodeApiGateway(phone:NSString)->AnyObject{returnTyphoonDefinition.withClass(RequestCodeApiGatewayImpl.self){(definition)indefinition.useInitializer("initWithApiService:apiRouter:phone:"){(initializ