是否可以针对 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。
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。