TyphoonComponentFactoryProtocol.componentForType(classOrProtocol:AnyObject!)无法接受协议
据我所知,MyProtocol.self返回一个协议,协议似乎没有实现AnyObject协议(只有Any)。
有没有办法根据swift中的协议使用Typhoon进行服务定位(除了直接调用汇编函数)或者这只是目前swift和typhoon的限制?
答案 0 :(得分:2)
不幸的是,即使对于@objc
协议,此方法似乎也不适用于Swift。它适用于Objective-C。我已经碰到了错误报告,至少报告说该方法在Swift中不可用。
尽管可能,但在Typhoon中,通常不需要使用TyphoonComponentFactory
接口来解析组件,因为它们可以从程序集中解析,例如:
let assembly = SwiftMiddleAgesAssembly().activate()
let knight = assembly.basicKnight() as! Knight
如果你希望你能从一个台风建造的物体前进到另一个,the assembly can be injected。