1

是否可以即时激活其他程序集?

例如,在Info.plist我有两个程序集:UIAssemblyServicesComponents.

除此之外,我还有多个故事板,每个故事板都有自己的程序集。我不想在启动时加载所有对象,因为大多数对象都不会使用。

因此,在applicationDidFinishLaunching方法之后,startUpRouter 开始发挥作用 - 它应该使用 TyphoonComponentFactory 创建 TyphoonStoryboard,其中包括初始程序集和新的 UserStoryAssembly。

4

1 回答 1

2

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

激活程序集不会实例化任何新对象。发生的情况是,使用程序集,我们创建了用于实例化新对象的配方注册表。. .

(Typhoon 使用运行时检测根据定义的方法名称为每个定义分配唯一的键。这允许 IDE 代码完成、重构等,而无需构建任何特殊的工具支持)。

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

于 2015-05-13T01:17:12.467 回答