我有这样的类结构:
class BaseNetworkClient: NSObject {
var defaultParametersBuilder: DefaultParametersBuilder!
}
class NetworkClient: BaseNetworkClient {
}
class DefaultParametersBuilder: NSObject {
}和台风组件
class CoreComponentsAssembly: TyphoonAssembly {
dynamic func baseNetworkClient() -> AnyObject {
return TyphoonDefinition.withClass(BaseNetworkClient.self) {
(definition) in
definition.scope = .ObjectGraph
definition.injectProperty(#selector(self.defaultParametersBuilder), with: self.defaultParametersBuilder())
}
}
dynamic func networkClient() -> AnyObject {
return TyphoonDefinition.withClass(NetworkClient.self) {
(definition) in
definition.scope = .ObjectGraph
}
}
dynamic func defaultParametersBuilder() -> AnyObject {
return TyphoonDefinition.withClass(DefaultParametersBuilder.self) {
(definition) in
definition.scope = .ObjectGraph
}
}
}BaseNetworkClient不注入任何类,但NetworkClient继承了它。问题是我不能向BaseNetworkClient注入任何属性。属性始终为nil。怎么了?
发布于 2016-05-16 18:05:09
抽象和基本定义在项目wiki:https://github.com/appsquickly/Typhoon/wiki/Types-of-Injections#abstract-and-base-definitions中进行了描述
要继承注入,您需要为定义设置parent:
definition.parent = self.baseNetworkClient()程序集将更改如下:
dynamic func baseNetworkClient() -> AnyObject {
return TyphoonDefinition.withClass(BaseNetworkClient.self) {
(definition) in
definition.injectProperty(#selector(self.defaultParametersBuilder), with: self.defaultParametersBuilder())
}
}
dynamic func networkClient() -> AnyObject {
return TyphoonDefinition.withClass(NetworkClient.self) {
(definition) in
definition.parent = self.baseNetworkClient()
definition.scope = .ObjectGraph
}
}https://stackoverflow.com/questions/37249141
复制相似问题