Slide 52
Slide 52 text
Advanced usage
public class MusicAssembly: TyphoonAssembly {
public var themesAssembly: ThemesAssembly!
public dynamic func musicAdvisor(albumProvier: AlbumProvider) -> AnyObject {
return TyphoonDefinition.withClass(MusicAdvisor.self) {
definition in
definition.useInitializer("initWithAlbumProvider:themesComposer:") {
initializer in
initializer.injectParameterWith(albumProvider)
initializer.injectParameterWith(self.themesAssembly.defaultComposer)
}
}
}
public dynamic func appDelegate() -> AnyObject {
return TyphoonDefinition.withClass(AppDelegate.self) {
(definition) in
definition.injectProperty("musicAdvisor", with: self.musicAdvisor())
definition.injectProperty("rootViewController", with: RootViewController())
definition.injectProperty("assembly")
}
}
...
}
#iOSDI