是否有可能在运行时激活其他组件?
例如,在Info.plist中,我有两个程序集:UIAssembly和ServicesComponents。
除此之外,我还有多个故事板,每个都有自己的程序集。我不想在启动时加载所有对象,因为大多数对象都将是未使用的。
因此,在applicationDidFinishLaunching方法之后,startUpRouter开始发挥作用-它应该使用TyphoonComponentFactory创建TyphoonStoryboard,其中包括初始程序集和新的UserStoryAssembly。
发布于 2015-05-13 09:17:12
当然,除了使用plist integration绑定到您的应用程序的程序集之外,还可以创建其他程序集,但是您不需要这样做。
Activating assemblies不会实例化任何新对象。实际情况是,使用程序集,我们创建了一个用于实例化新对象的配方注册表。。。
(Typhoon使用运行时指令插入,根据定义的方法名称为每个定义分配唯一的键。这允许IDE代码完成、重构等,而无需构建任何特殊的工具支持)。
。。。此信息占用的内存很少,并且存储在TyphoonComponentFactory类中。在激活之后,TyphoonAssembly将使用objective-C消息转发将消息发送到工厂,然后工厂才会根据定义的scope rules组装一个实例。默认的作用域是ObjectGraph,它允许为用例定义一个关系网络,然后在定义完成后将其丢弃。(这是将依赖注入应用于移动和桌面软件的一个独特功能)。只保留单例作用域对象。
https://stackoverflow.com/questions/30203975
复制相似问题