台风 - 其他协作组件激活

时间:2015-05-13 01:10:26

标签: ios objective-c swift dependency-injection typhoon

是否可以动态激活其他组件?

例如,在$root = 'REST_SERVICE_URL' $user = "user" $pass= "password" $secpasswd = ConvertTo-SecureString $pass -AsPlainText -Force $credential = New-Object System.Management.Automation.PSCredential($user, $secpasswd) $result = Invoke-RestMethod $root -Credential $credential 中,我有两个程序集:return { getRecords: getRecords, // this is a function CurrentTitle: getCurrentRecord().title // this is a title }; Info.plist

除此之外,我还有多个故事板,每个故事板都有自己的组件。我不想在启动时加载所有这些,因为大多数对象都将被闲置。

因此,在UIAssembly方法之后,startUpRouter进入游戏 - 它应该使用TyphoonComponentFactory创建TyphoonStoryboard,其中包括初始程序集和新的UserStoryAssembly。

1 个答案:

答案 0 :(得分:2)

除了使用plist integration绑定到您的应用程序的程序集之外,当然可以创建其他程序集,但是您不需要这样做。

Activating assemblies不会实例化任何新对象。会发生的是,使用程序集,我们创建了一个用于实例化新对象的配方注册表。 。 。

(Typhoon根据定义的方法名称使用运行时检测为每个定义分配唯一键。这样可以在不构建任何特殊工具支持的情况下完成IDE代码的完成,重构等。)< / em>的

。 。 。此信息消耗的信息很少,并存储在TyphoonComponentFactory类中。发生的事情是,激活后,TyphoonAssembly将使用objective-C消息转发将消息发送到工厂,然后工厂将根据定义的scope rules组装实例。默认范围是ObjectGraph,它允许为用例定义关系网络,然后在完成后丢弃它。 (这是将依赖注入应用于移动和桌面软件的独特功能)。仅保留单一作用域对象。