我正在使用Typhoon在Swift for iOS中注入依赖项。
我创建了一个程序集,在一个名为BaseRequest的类中注入依赖项,如下所示:
public class NetworkAssembly: TyphoonAssembly {
public dynamic func baseRequest() -> AnyObject {
return TyphoonDefinition.withClass(BaseRequest.self){
(definition) in
definition.useInitializer("initWithRetryCount:userUmbrella:networkQueueManager:"){
(initializer) in
initializer.injectParameterWith((TyphoonConfig("network.request.retry.count") as! NSNumber).integerValue)
initializer.injectParameterWith(self.coreComponents.userUmbrella())
initializer.injectParameterWith(self.networkQueueManager())
}
}
}
}
现在,我正在尝试使用这样的工厂方法创建BaseRequest的子类:
class DownloadLibrariesRequest: BaseRequest {
var libraries:Array<String> = []
class func downloadLibraries(libraries:Array<String>)->Void{
let request: DownloadLibrariesRequest = DownloadLibrariesRequest(.....)
request.libraries = libraries
}
}
我需要能够创建 DownloadLibrariesRequest 的实例,并为 BaseRequest 调用 NetworkAssembly ,因为我需要在其中使用另一个init子类。 另外,我需要提一下,我将有大约50个这样的子类,因此为所有这些子类创建程序集目前听起来并不太好。