是否有可能在Typhoon中注册协议,以便与swift中的TyphoonComponentFactory.componentForType一起使用

时间:2015-07-08 12:29:31

标签: swift typhoon

TyphoonComponentFactoryProtocol.componentForType(classOrProtocol:AnyObject!)无法接受协议

据我所知,MyProtocol.self返回一个协议,协议似乎没有实现AnyObject协议(只有Any)。

有没有办法根据swift中的协议使用Typhoon进行服务定位(除了直接调用汇编函数)或者这只是目前swift和typhoon的限制?

1 个答案:

答案 0 :(得分:2)

不幸的是,即使对于@objc协议,此方法似乎也不适用于Swift。它适用于Objective-C。我已经碰到了错误报告,至少报告说该方法在Swift中不可用。

尽管可能,但在Typhoon中,通常不需要使用TyphoonComponentFactory接口来解析组件,因为它们可以从程序集中解析,例如:

let assembly = SwiftMiddleAgesAssembly().activate()
let knight = assembly.basicKnight() as! Knight 

如果你希望你能从一个台风建造的物体前进到另一个,the assembly can be injected

相关问题