是否可以针对 Typhoon 中的协议注册以与 swift 中的 TyphoonComponentFactory.componentForType 一起使用

Is it possible to register against a protocol in Typhoon for use with TyphoonComponentFactory.componentForType in swift

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

据我所知MyProtocol.self returns 协议和协议似乎没有实现 AnyObject 协议(只有 Any)。

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

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

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

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

如果您愿意,可以从一个 Typhoon 构建的对象转到另一个,the assembly can be injected